From 90424289fb8dbe1f0ef948f71a919082e4b9627d Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Thu, 5 Jun 2014 15:31:35 +0200 Subject: [PATCH] widget: reset all controllers when the widget becomes insensitive Widgets becoming insensitive won't receive further events, but there could be chances the controllers don't get properly notified and reset in those situations. --- gtk/gtkwidget.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 39c0338d39..27e28962d5 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -12681,6 +12681,19 @@ gtk_widget_propagate_state (GtkWidget *widget, g_list_free (devices); } + if (!gtk_widget_is_sensitive (widget)) + { + EventControllerData *data; + GList *l; + + /* Reset all controllers */ + for (l = priv->event_controllers; l; l = l->next) + { + data = l->data; + gtk_event_controller_reset (data->controller); + } + } + if (GTK_IS_CONTAINER (widget)) { GtkStateData child_data;