gtkgesturerotate: Fix assertion
authorJames Westman <james@jwestman.net>
Mon, 2 Aug 2021 21:38:11 +0000 (16:38 -0500)
committerJames Westman <james@jwestman.net>
Mon, 2 Aug 2021 21:38:35 +0000 (16:38 -0500)
Fixes #4144. An assertion would be printed when GtkGestureRotate was
used with a touchscreen.

gtk/gtkgesturerotate.c

index 873302c422684b6d3e933dc0078f04c72f8d7e7c..5ecf7490b1c41235263c0034a644a8a2872a6461 100644 (file)
@@ -95,13 +95,13 @@ _gtk_gesture_rotate_get_angle (GtkGestureRotate *rotate,
     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)
     {
+      phase = gdk_touchpad_event_get_gesture_phase (last_event);
+      if (phase == GDK_TOUCHPAD_GESTURE_PHASE_CANCEL)
+        goto out;
+
       *angle = priv->accum_touchpad_angle;
     }
   else