gdk/wayland: Unset GDK_BUTTON1_MASK on proximity_in

In some circumstances (e.g. activating with a stylus something that
closes a window), we can receive zwp_tablet_tool.proximity_out without
receiving a zwp_tablet_tool.up beforehand.

In those cases, we are not expecting neither .up nor .button, so
reset the stylus device button modifiers on proximity_out.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4103
This commit is contained in:
Carlos Garnacho 2021-12-02 16:53:47 +01:00
parent 72cf304a86
commit 9539cc4a93

View File

@ -3606,6 +3606,10 @@ tablet_tool_handle_proximity_out (void *data,
g_object_unref (tablet->pointer_info.focus); g_object_unref (tablet->pointer_info.focus);
tablet->pointer_info.focus = NULL; tablet->pointer_info.focus = NULL;
tablet->pointer_info.button_modifiers &=
~(GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK |
GDK_BUTTON4_MASK | GDK_BUTTON5_MASK);
gdk_device_update_tool (tablet->stylus_device, NULL); gdk_device_update_tool (tablet->stylus_device, NULL);
g_clear_object (&tablet->pointer_info.cursor); g_clear_object (&tablet->pointer_info.cursor);
} }