GNOME Bugzilla – Bug 692411
Slave device tracking goes wrong when there are no GDK_DEVICE_TYPE_SLAVE
Last modified: 2013-02-13 16:28:10 UTC
Created attachment 234234 [details] [review] Patch to fix issue in _gdk_windowing_got_event the source device that is passed into _gdk_display_device_grab_update is based on the value from the last saved slave device. On the Wayland backend (and from a grep, it looks like on many other backends) we have no slave devices (currently...maybe we should?) Because we have no slave devices we never update the "last_slave". The attached patch checks if have got a saved device before trying to use that.
Comment on attachment 234234 [details] [review] Patch to fix issue The patch is obviously fine, and indeed adds safety, although I would recommend for the wayland backend to set source_device==device on events, IIRC win32 and quartz do it this way
Thanks Carlos, committed and pushed.
Created attachment 235380 [details] [review] gdkwindow: don't use last_slave for the source device if it is NULL This issue also occurs when synthesized crossing events are created.
last_slave is also used in the proxy_pointer_event function, so may need do be checked there too.
Review of attachment 235380 [details] [review]: ok
Comment on attachment 235380 [details] [review] gdkwindow: don't use last_slave for the source device if it is NULL Attachment 235380 [details] pushed as 8568d66 - gdkwindow: don't use last_slave for the source device if it is NULL
all fixed here, I assume ?
Thomas, did you still think your "comment 4" still stands?