gdk: Fix toplevel calculation on pointer grab switch

This check used to read if (grab || device_type != GDK_DEVICE_TYPE_PHYSICAL),
the grab check was only reserved to physical devices, which the current
pointer device definitely doesn't act like. So the condition was "fixed" the
wrong way around, and the latter check is now moot, so the condition should
really go away. We always want to check the new toplevel under the pointer
here.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2970
This commit is contained in:
Carlos Garnacho 2020-07-31 18:46:47 +02:00
parent 90eec6734f
commit 9564cba492

View File

@ -639,8 +639,7 @@ switch_to_pointer_grab (GdkDisplay *display,
if (grab == NULL /* ungrab */ ||
(!last_grab->owner_events && grab->owner_events) /* switched to owner_events */ )
{
if (grab)
new_toplevel = get_current_toplevel (display, device, &x, &y, &state);
new_toplevel = get_current_toplevel (display, device, &x, &y, &state);
if (new_toplevel)
{