summaryrefslogtreecommitdiff
path: root/gtk/gtkgesture.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkgesture.c')
-rw-r--r--gtk/gtkgesture.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c
index 0f0fb9a84e..c6bd6583c2 100644
--- a/gtk/gtkgesture.c
+++ b/gtk/gtkgesture.c
@@ -1161,3 +1161,40 @@ _gtk_gesture_handled_sequence_press (GtkGesture *gesture,
return data->press_handled;
}
+
+gboolean
+_gtk_gesture_get_pointer_emulating_sequence (GtkGesture *gesture,
+ GdkEventSequence **sequence)
+{
+ GtkGesturePrivate *priv;
+ GdkEventSequence *seq;
+ GHashTableIter iter;
+ PointData *data;
+
+ g_return_val_if_fail (GTK_IS_GESTURE (gesture), FALSE);
+
+ priv = gtk_gesture_get_instance_private (gesture);
+ g_hash_table_iter_init (&iter, priv->points);
+
+ while (g_hash_table_iter_next (&iter, (gpointer*) &seq, (gpointer*) &data))
+ {
+ switch (data->event->type)
+ {
+ case GDK_TOUCH_BEGIN:
+ case GDK_TOUCH_UPDATE:
+ case GDK_TOUCH_END:
+ if (!data->event->touch.emulating_pointer)
+ continue;
+ /* Fall through */
+ case GDK_BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ case GDK_MOTION_NOTIFY:
+ *sequence = seq;
+ return TRUE;
+ default:
+ break;
+ }
+ }
+
+ return FALSE;
+}