]> Dogcows Code - chaz/openbox/commitdiff
add support for the X Cursor library. this means a nicer cursor for startup notification.
authorDana Jansens <danakj@orodu.net>
Sun, 25 Mar 2007 16:56:47 +0000 (16:56 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 25 Mar 2007 16:56:47 +0000 (16:56 +0000)
Makefile.am
configure.ac
openbox/openbox.c

index a61b2da9e781b7f1adff74b8b9f5f8caca794719..5d4637284fa69044fcacfcd863bafc00af4e06bb 100644 (file)
@@ -105,6 +105,7 @@ parser_libobparser_la_SOURCES = \
 
 openbox_openbox_CPPFLAGS = \
        $(X_CFLAGS) \
+       $(XCURSOR_CFLAGS) \
        $(SM_CFLAGS) \
        $(PANGO_CFLAGS) \
        $(GLIB_CFLAGS) \
@@ -122,6 +123,7 @@ openbox_openbox_LDADD = \
        $(XSHAPE_LIBS) \
        $(GLIB_LIBS) \
        $(X_LIBS) \
+       $(XCURSOR_LIBS) \
        $(LIBSN_LIBS) \
        $(XML_LIBS) \
        $(EFENCE_LIBS) \
index 1dd2669fa0a9f567061d3c54300cc36d6d212ae8..4b85d8077089448cf662ad9b97ca5c5067536599 100644 (file)
@@ -107,6 +107,18 @@ else
   sn_found=no
 fi
 
+PKG_CHECK_MODULES(XCURSOR, [xcursor],
+  [
+    AC_DEFINE(USE_XCURSOR, [1], [Use X Cursor library])
+    AC_SUBST(XCURSOR_CFLAGS)
+    AC_SUBST(XCURSOR_LIBS)
+    xcursor_found=yes
+  ],
+  [
+    xcursor_found=no
+  ]
+)
+
 dnl Check for session management
 X11_SM
 
@@ -133,6 +145,7 @@ AC_OUTPUT
 AC_MSG_RESULT
 AC_MSG_RESULT([Compiling with these options:
                Startup Notification... $sn_found
+               X Cursor Library... $xcursor_found
                Session Management... $SM
                ])
 AC_MSG_RESULT([configure complete, now type "make"])
index 4a15edd699aa101fc86266f77177434a035567d0..c24ed76abe69f6401e81a1ccaa3ffc8e78a38309 100644 (file)
@@ -70,6 +70,9 @@
 #include <errno.h>
 
 #include <X11/cursorfont.h>
+#if USE_XCURSOR
+#include <X11/Xcursor/Xcursor.h>
+#endif
 
 RrInstance *ob_rr_inst;
 RrTheme    *ob_rr_theme;
@@ -91,6 +94,7 @@ static gboolean  being_replaced = FALSE;
 
 static void signal_handler(gint signal, gpointer data);
 static void parse_args(gint argc, gchar **argv);
+static Cursor load_cursor(const gchar *name, guint fontval);
 
 gint main(gint argc, gchar **argv)
 {
@@ -174,28 +178,21 @@ gint main(gint argc, gchar **argv)
 
     /* create available cursors */
     cursors[OB_CURSOR_NONE] = None;
-    cursors[OB_CURSOR_POINTER] =
-        XCreateFontCursor(ob_display, XC_left_ptr);
-    cursors[OB_CURSOR_BUSY] =
-        XCreateFontCursor(ob_display, XC_watch);
-    cursors[OB_CURSOR_MOVE] =
-        XCreateFontCursor(ob_display, XC_fleur);
-    cursors[OB_CURSOR_NORTH] =
-        XCreateFontCursor(ob_display, XC_top_side);
-    cursors[OB_CURSOR_NORTHEAST] =
-        XCreateFontCursor(ob_display, XC_top_right_corner);
-    cursors[OB_CURSOR_EAST] =
-        XCreateFontCursor(ob_display, XC_right_side);
-    cursors[OB_CURSOR_SOUTHEAST] =
-        XCreateFontCursor(ob_display, XC_bottom_right_corner);
-    cursors[OB_CURSOR_SOUTH] =
-        XCreateFontCursor(ob_display, XC_bottom_side);
-    cursors[OB_CURSOR_SOUTHWEST] =
-        XCreateFontCursor(ob_display, XC_bottom_left_corner);
-    cursors[OB_CURSOR_WEST] =
-        XCreateFontCursor(ob_display, XC_left_side);
-    cursors[OB_CURSOR_NORTHWEST] =
-        XCreateFontCursor(ob_display, XC_top_left_corner);
+    cursors[OB_CURSOR_POINTER] = load_cursor("left_ptr", XC_left_ptr);
+    cursors[OB_CURSOR_BUSY] = load_cursor("left_ptr_watch", XC_watch);
+    cursors[OB_CURSOR_MOVE] = load_cursor("fleur", XC_fleur);
+    cursors[OB_CURSOR_NORTH] = load_cursor("top_side", XC_top_side);
+    cursors[OB_CURSOR_NORTHEAST] = load_cursor("top_right_corner",
+                                               XC_top_right_corner);
+    cursors[OB_CURSOR_EAST] = load_cursor("right_side", XC_right_side);
+    cursors[OB_CURSOR_SOUTHEAST] = load_cursor("bottom_right_corner",
+                                               XC_bottom_right_corner);
+    cursors[OB_CURSOR_SOUTH] = load_cursor("bottom_side", XC_bottom_side);
+    cursors[OB_CURSOR_SOUTHWEST] = load_cursor("bottom_left_corner",
+                                               XC_bottom_left_corner);
+    cursors[OB_CURSOR_WEST] = load_cursor("left_side", XC_left_side);
+    cursors[OB_CURSOR_NORTHWEST] = load_cursor("top_left_corner",
+                                               XC_top_left_corner);
 
     /* create available keycodes */
     keys[OB_KEY_RETURN] =
@@ -440,6 +437,18 @@ static void parse_args(gint argc, gchar **argv)
     }
 }
 
+static Cursor load_cursor(const gchar *name, guint fontval)
+{
+    Cursor c = None;
+
+#if USE_XCURSOR
+    c = XcursorLibraryLoadCursor(ob_display, name);
+#endif
+    if (c == None)
+        XCreateFontCursor(ob_display, fontval);
+    return c;
+}
+
 void ob_exit_with_error(const gchar *msg)
 {
     g_critical(msg);
This page took 0.030851 seconds and 4 git commands to generate.