mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
Do not modify associated device for non-master devices on dispose
Only master devices must modify the associated device to separate a pointer/keyboard pair, slave devices must only call _gdk_device_remove_slave(). Fixes bug 639767 - password not accepted in gnome-screensaver dialog, reported by Frederic Crozat. On VT-switch, the X server removes its grab on HW devices, the effect on clients is that slave devices disappear, and these were mistakenly mangling the master device hierarchy. so gdk_device_get_associated_device() on the client pointer wouldn't return the paired keyboard anymore. The final effect is that gtkplug-x11 wasn't setting a keyboard to its generated events.
This commit is contained in:
parent
e3be6fc24f
commit
8fdd8dbc35
@ -273,7 +273,9 @@ gdk_device_dispose (GObject *object)
|
|||||||
|
|
||||||
if (device->associated)
|
if (device->associated)
|
||||||
{
|
{
|
||||||
_gdk_device_set_associated_device (device->associated, NULL);
|
if (device->type == GDK_DEVICE_TYPE_MASTER)
|
||||||
|
_gdk_device_set_associated_device (device->associated, NULL);
|
||||||
|
|
||||||
g_object_unref (device->associated);
|
g_object_unref (device->associated);
|
||||||
device->associated = NULL;
|
device->associated = NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user