diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2015-06-24 15:41:23 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2015-06-24 16:42:07 +0200 |
commit | de260ae2ea8809b992b113d5f37b2dac38b2abcf (patch) | |
tree | 8368d14237ab53987fa22bc7555e37072be2f2c6 | |
parent | 25885ca600fffcade4f3a77019d8cca17d9ec325 (diff) | |
download | gtk+-de260ae2ea8809b992b113d5f37b2dac38b2abcf.tar.gz |
wayland: Update grab serial when ungrabbing keyboards
This was being done so only on pointers. Internally, a GdkDeviceGrabInfo
is kept for each of the master pointer/keyboard, failing to do this for
keyboards results in a stuck keyboard grab.
https://bugzilla.gnome.org/show_bug.cgi?id=748892
-rw-r--r-- | gdk/wayland/gdkdevice-wayland.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 9ef8968b75..45ba21b6da 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -415,6 +415,11 @@ gdk_wayland_device_ungrab (GdkDevice *device, display = gdk_device_get_display (device); + grab = _gdk_display_get_last_device_grab (display, device); + + if (grab) + grab->serial_end = grab->serial_start; + if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) { /* Device is a keyboard */ @@ -422,11 +427,6 @@ gdk_wayland_device_ungrab (GdkDevice *device, else { /* Device is a pointer */ - grab = _gdk_display_get_last_device_grab (display, device); - - if (grab) - grab->serial_end = grab->serial_start; - g_clear_object (&wayland_device->grab_cursor); gdk_wayland_device_update_window_cursor (wayland_device); |