mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 21:51:08 +00:00
gtkgesturezoom: Do not check touchpad phase on generic events
This gesture handles both individual touch events and touchpad gesture events, and was checking the touchpad phase in generic code paths. This is dubious since event methods error out on the wrong GdkEventTypes. Check the touchpad gesture phase within the branch handling touchpad events, and make it clear which is the gesture phase of all that we are ignoring. Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2825
This commit is contained in:
parent
d2235b71f3
commit
ba988cd899
@ -94,15 +94,15 @@ _gtk_gesture_zoom_get_distance (GtkGestureZoom *zoom,
|
||||
goto out;
|
||||
|
||||
last_event = gtk_gesture_get_last_event (gesture, sequences->data);
|
||||
phase = gdk_touchpad_event_get_gesture_phase (last_event);
|
||||
|
||||
if (gdk_event_get_event_type (last_event) == GDK_TOUCHPAD_PINCH &&
|
||||
(phase == GDK_TOUCHPAD_GESTURE_PHASE_BEGIN ||
|
||||
phase == GDK_TOUCHPAD_GESTURE_PHASE_UPDATE ||
|
||||
phase == GDK_TOUCHPAD_GESTURE_PHASE_END))
|
||||
if (gdk_event_get_event_type (last_event) == GDK_TOUCHPAD_PINCH)
|
||||
{
|
||||
double scale;
|
||||
|
||||
/* Touchpad pinch */
|
||||
phase = gdk_touchpad_event_get_gesture_phase (last_event);
|
||||
if (phase == GDK_TOUCHPAD_GESTURE_PHASE_CANCEL)
|
||||
goto out;
|
||||
|
||||
scale = gdk_touchpad_event_get_pinch_scale (last_event);
|
||||
*distance = scale;
|
||||
|
Loading…
Reference in New Issue
Block a user