]> git.sur5r.net Git - i3/i3/commitdiff
Set the root window cursor. Fixes #442.
authorFernando Tarlá Cardoso Lemos <fernandotcl@gmail.com>
Thu, 28 Jul 2011 23:36:14 +0000 (20:36 -0300)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 29 Jul 2011 10:38:24 +0000 (12:38 +0200)
src/main.c

index 947c783b3b11102a90b36fe93cbdf3ae68f7aad2..5e8d76a5a5346b522d8168bfc7a6cebc4035a981 100644 (file)
@@ -331,6 +331,21 @@ int main(int argc, char *argv[]) {
         /*init_xkb();*/
     }
 
+    /* Set a cursor for the root window (otherwise the root window will show no
+       cursor until the first client is launched). */
+    if (xcursor_supported) {
+        uint32_t values[1] = { xcursor_get_cursor(XCURSOR_CURSOR_POINTER) };
+        xcb_change_window_attributes(conn, root, XCB_CW_CURSOR, values);
+    } else {
+        xcb_cursor_t cursor_id = xcb_generate_id(conn);
+        i3Font cursor_font = load_font("cursor", false);
+        int xcb_cursor = xcursor_get_xcb_cursor(XCURSOR_CURSOR_POINTER);
+        xcb_create_glyph_cursor(conn, cursor_id, cursor_font.id, cursor_font.id,
+                xcb_cursor, xcb_cursor + 1, 0, 0, 0, 65535, 65535, 65535);
+        xcb_change_window_attributes(conn, root, XCB_CW_CURSOR, &cursor_id);
+        xcb_free_cursor(conn, cursor_id);
+    }
+
     if (xkb_supported) {
         int errBase,
             major = XkbMajorVersion,