gri3-wm/src
Michael Stapelberg 3721c598bd Bugfix: Set the cursor via the Xlib connection if XCursor is supported
This fixes a race where we created cursors on the Xlib connection, flushed,
then used the cursor on the XCB connection. Even though we flushed, the X
server did not process the requests yet and therefore returned a BadCursor
error.

This bugfix uses the Xlib connection for setting the root window cursor which
will ensure that the requests are properly serialized.

An easy test for this (on my machine) is the following ~/.xsession:
    xsetroot -cursor_name cross
    exec i3
If you see a cross cursor instead of the pointer, the race happens. You’ll see
a error_code=6 error in your ~/.xsession-errors.
2011-07-29 13:13:51 +02:00
..
assignments.c Implement assignments for (named) workspaces, with '~' compatibility (floating) 2011-05-23 18:41:17 +02:00
cfgparse.l patch to allow exec_always in configure file 2011-07-12 18:23:14 +02:00
cfgparse.y remove unnecessary close, because fclose already closes the file descriptor 2011-07-24 18:42:46 +02:00
click.c Bugfix: Correctly resize when clicking on the border of a stacked con 2011-07-23 21:48:14 +02:00
cmdparse.l Implement 'focus floating', 'focus tiling' and 'focus mode_toggle' (+test +docs) 2011-07-04 17:09:52 +02:00
cmdparse.y Bugfix: Switch to appropriate workspace when using 'focus' (+test) (Thanks rogutes) 2011-07-14 23:45:36 +02:00
con.c x: Don’t set background color on frame windows, reduces flickering 2011-07-10 19:58:46 +02:00
config.c remove left-over wordexp.h include 2011-07-23 22:37:41 +02:00
debug.c debug.c: remove handle_event 2011-07-11 18:21:25 +02:00
ewmh.c Make i3 compatible with the very latest xcb 2011-03-18 14:39:27 +01:00
floating.c Bugfix: Also abort drag_pointer after XCB_KEY_PRESS / XCB_KEY_RELEASE (Thanks eeemsi) 2011-07-28 21:01:34 +02:00
handlers.c handlers.c: fix warnings 2011-07-25 00:32:03 +02:00
ipc.c ipc: make 'focused' a bool 2011-07-24 15:00:09 +02:00
load_layout.c Make workspace_layout handle all cons at workspace level, not only the first one (+test) 2011-06-02 17:21:38 +02:00
log.c log: display time in microseconds when DEBUG_TIMING is set 2011-07-10 23:11:21 +02:00
main.c Bugfix: Set the cursor via the Xlib connection if XCursor is supported 2011-07-29 13:13:51 +02:00
manage.c Bugfix: Only set ENTER_WINDOW event mask for mapped windows (fixes focus problems) 2011-07-04 13:41:02 +02:00
match.c Bugfix: multiple criteria should use a logical AND (+test) (Thanks f8l) 2011-07-08 00:21:29 +02:00
move.c Make workspace_layout handle all cons at workspace level, not only the first one (+test) 2011-06-02 17:21:38 +02:00
output.c Bugfix: fix disabling RandR outputs 2011-02-21 01:43:39 +01:00
randr.c Bugfix: use the global root variable, don’t get the first one (Thanks quaec) 2011-07-23 22:29:01 +02:00
render.c Bugfix: Don’t raise the stacked/tabbed decoration when border != BS_NONE and children == 1 (Thanks smartass) 2011-07-11 23:17:56 +02:00
resize.c Fix the resize algorithm I broke earlier. 2011-01-27 13:00:14 +01:00
sighandler.c Make i3 compatible with the very latest xcb 2011-03-18 14:39:27 +01:00
tree.c Ignore X11 errors caused by ReparentWindow / ChangeProperty on already destroyed windows 2011-07-10 23:44:13 +02:00
util.c use memmem and strndup from FreeBSD on Darwin (Thanks Marcus) 2011-07-17 15:18:45 +02:00
window.c Time Lord technology: for_window config directive to run arbitrary cmds 2011-05-15 20:10:25 +02:00
workspace.c Implement 'fullscreen global' 2011-06-10 18:27:20 +02:00
x.c x.c: fix warning by removing unused variable 2011-07-25 00:32:14 +02:00
xcb.c Don't leak the cursor_id. 2011-07-29 12:38:44 +02:00
xcursor.c Bugfix: Set the cursor via the Xlib connection if XCursor is supported 2011-07-29 13:13:51 +02:00
xinerama.c Bugfix: Fix initialization / assignments when RandR is missing 2011-05-14 22:34:34 +02:00