GNOME Bugzilla – Bug 729462
DeviceManagerXi2: Update cached core pointer in getter if NULL
Last modified: 2014-12-15 17:48:44 UTC
XIGetClientPointer() may return the device id '0' when called early. This patch makes pointer cursors work in nested mutter Wayland sessions again.
Created attachment 275751 [details] [review] DeviceManagerXi2: Update cached core pointer in getter if NULL
I just hit exactly the same issue with clutters own perf-test-state-pick on X11 directly. Your patch does fix things for me, however it does make me wonder when we can rely on the core pointer being available, as updating it lazily in the getter is still a potential race
Created attachment 276858 [details] [review] Stop use XGetClientPointer Different approach to solve the same problem. XGetClientPointer seems a pretty bogus API to use in the first place, by avoiding it we can solve this issue hopefully a bit nicer and make it not-racy..
Attachment 275751 [details] pushed as 5281425 - DeviceManagerXi2: Update cached core pointer in getter if NULL