diff options
-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 |