GNOME Bugzilla – Bug 646108
Cursor setting is broken
Last modified: 2011-07-05 16:26:54 UTC
The gtk3 XI2 merge broke support for setting the cursor on foreign windows (or maybe just "foreign windows that don't use XI2"?). While this may be just a bug, the fix in gtk is probably much bigger that the fix in gnome-shell.
Created attachment 184590 [details] [review] shell_global_set_cursor: Fix this In gtk3 (at least for the moment), gdk_window_set_cursor() no longer works on foreign windows, so we can't use it to set the cursor on the stage. Work around this by using XDefineCursor directly (but still using GdkCursor to do the complicated loading/theming stuff).
Glad(???) to know I was right. This patch appears to fix all instances where the cursor type was the incorrect default.
My understanding is that the XI2 cursor setting problem was a bug somewhere between GTK and XI2, and has been resolved there. Certainly things work correctly here with GTK+ 3.0.6 and recent Fedora 15 Xserver/libs. If there was a regression with versions *after* I have running here, I think we'd just fix it in the correct placing. Resolving NOTGNOME. (I was, if I recall, reproducing the bug here early, so I suspect it's been fixed.)
Turns out this wasn't reliably fixed, it only worked if GDK had processed a pointer event before - see bug 649313. (So probably using a window menu made it work.)
Fixed in GDK now, I hope.