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
This commit is contained in:
		| @ -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); | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Carlos Garnacho
					Carlos Garnacho