]> git.sur5r.net Git - i3/i3/commit
Bugfix: Set the cursor via the Xlib connection if XCursor is supported
authorMichael Stapelberg <michael@stapelberg.de>
Fri, 29 Jul 2011 11:12:28 +0000 (13:12 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 29 Jul 2011 11:13:51 +0000 (13:13 +0200)
commit3721c598bd914215b7f483328e568a144b5ec70e
treee02c2ed5e85be51d7db22fa42695e8e7d8ddc5f6
parentbc7dec6a4cc5b0338ede0e7f215772d79b7f7ddf
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.
include/xcursor.h
src/main.c
src/xcursor.c