diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2014-03-26 10:49:21 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2014-05-23 19:54:24 +0200 |
commit | 38e40a55f4961cd67a1aabb67e3291f36de30aae (patch) | |
tree | 37e1623ef6ba7495589e86a396b061d934a1c1ff | |
parent | 8e1d5f98de2312b241fb81838d667eeec1d0bd02 (diff) | |
download | gtk+-38e40a55f4961cd67a1aabb67e3291f36de30aae.tar.gz |
widget: Add gtk_widget_set_gesture_state()
This helper function ensures the state is propagated for
all the active sequences in the given gesture.
-rw-r--r-- | gtk/gtkwidget.c | 21 | ||||
-rw-r--r-- | gtk/gtkwidget.h | 4 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index efffd05b88..a1560b1e6d 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -16822,3 +16822,24 @@ gtk_widget_set_sequence_state (GtkWidget *widget, event_widget = gtk_widget_get_parent (event_widget); } } + +void +gtk_widget_set_gesture_state (GtkWidget *widget, + GtkGesture *gesture, + GtkEventSequenceState state) +{ + GList *gestures, *l; + + g_return_if_fail (GTK_IS_WIDGET (widget)); + g_return_if_fail (GTK_IS_GESTURE (gesture)); + g_return_if_fail (state >= GTK_EVENT_SEQUENCE_NONE && + state <= GTK_EVENT_SEQUENCE_DENIED); + g_return_if_fail (_gtk_widget_has_gesture (widget, gesture)); + + gestures = gtk_gesture_get_sequences (gesture); + + for (l = gestures; l; l = l->next) + gtk_widget_set_sequence_state (widget, l->data, state); + + g_list_free (gestures); +} diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 5795865bdd..53e2c98955 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -1488,6 +1488,10 @@ GDK_AVAILABLE_IN_3_14 void gtk_widget_set_sequence_state (GtkWidget *widget, GdkEventSequence *sequence, GtkEventSequenceState state); +GDK_AVAILABLE_IN_3_14 +void gtk_widget_set_gesture_state (GtkWidget *widget, + GtkGesture *gesture, + GtkEventSequenceState state); G_END_DECLS |