GDK_TOUCH_END deserves the same treatment than GDK_BUTTON_RELEASE, since it's
subject to the same circumstances (popping up a menu on long press would be
immediately dismissed on release if we handled them there). Ideally, we would
want to match releases that we obtained a press for while grabbed, but as
the popup is also dismissed on GDK_BUTTON_PRESS/GDK_TOUCH_BEGIN, there's no
use for this tracking.
And GDK_TOUCH_CANCEL sounds weird as a reason to dismiss popups, just like
crossing events would.
(cherry-picked from commit
2ff4c77c5500110e2b387a8764ab19a92045ff4e)
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2512
Origin: upstream, 4.8.3, commit:
cc5ba83ebae31b20d8ac53fe1a32685b252a100d
Gbp-Pq: Name gdksurface-Do-not-consider-GDK_TOUCH_END-CANCEL-as-popup-.patch
// grabs, it will be delivered to the same place as the
// press, and will cause the auto dismissal to be triggered.
case GDK_BUTTON_RELEASE:
-#endif
- case GDK_TOUCH_BEGIN:
case GDK_TOUCH_END:
case GDK_TOUCH_CANCEL:
+#endif
+ case GDK_TOUCH_BEGIN:
case GDK_TOUCHPAD_SWIPE:
case GDK_TOUCHPAD_PINCH:
display = gdk_event_get_display (event);