summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2016-01-13 20:53:54 +0100
committerCarlos Garnacho <carlosg@gnome.org>2016-01-19 00:00:05 +0100
commitc2e043b7d69eaaa6ad94bbfa2e146030bb110b2f (patch)
tree0b797a6f9797aca1cedf36f2ed3d4154ef18d285
parent3da9ad48b1cf0ef2ec8dc86583e6cd4c78654aee (diff)
downloadgtk+-c2e043b7d69eaaa6ad94bbfa2e146030bb110b2f.tar.gz
gtk: Add private gtk_widget_reset_controllers()
This is a one-shot call that can be called on the places we know we're taking input away.
-rw-r--r--gtk/gtkwidget.c27
-rw-r--r--gtk/gtkwidgetprivate.h2
2 files changed, 18 insertions, 11 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 75935bcf96..14f6133748 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -13006,17 +13006,7 @@ gtk_widget_propagate_state (GtkWidget *widget,
}
if (!gtk_widget_is_sensitive (widget))
- {
- EventControllerData *controller_data;
- GList *l;
-
- /* Reset all controllers */
- for (l = priv->event_controllers; l; l = l->next)
- {
- controller_data = l->data;
- gtk_event_controller_reset (controller_data->controller);
- }
- }
+ gtk_widget_reset_controllers (widget);
if (GTK_IS_CONTAINER (widget))
{
@@ -17596,3 +17586,18 @@ _gtk_widget_consumes_motion (GtkWidget *widget,
return FALSE;
}
+
+void
+gtk_widget_reset_controllers (GtkWidget *widget)
+{
+ EventControllerData *controller_data;
+ GtkWidgetPrivate *priv = widget->priv;
+ GList *l;
+
+ /* Reset all controllers */
+ for (l = priv->event_controllers; l; l = l->next)
+ {
+ controller_data = l->data;
+ gtk_event_controller_reset (controller_data->controller);
+ }
+}
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index 18bc98030c..c54ecccc8f 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -294,6 +294,8 @@ void gtk_widget_set_csd_input_shape (GtkWidget
gboolean gtk_widget_has_size_request (GtkWidget *widget);
+void gtk_widget_reset_controllers (GtkWidget *widget);
+
/* inline getters */
static inline gboolean