From 8c08a3322038cd4137250136651d29bec6f52b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 1 Aug 2017 21:30:20 +0200 Subject: [PATCH] widget: Don't try to propagate 0 state flags This happens quite often and has no effect anyway. --- gtk/gtkwidget.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index a479eda879..a034614d4b 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -10933,11 +10933,15 @@ gtk_widget_propagate_state (GtkWidget *widget, child_data.flags_to_set = data->flags_to_set & GTK_STATE_FLAGS_DO_PROPAGATE; child_data.flags_to_unset = data->flags_to_unset & GTK_STATE_FLAGS_DO_PROPAGATE; - for (child = _gtk_widget_get_first_child (widget); - child != NULL; - child = _gtk_widget_get_next_sibling (child)) + if (child_data.flags_to_set != 0 || + child_data.flags_to_unset != 0) { - gtk_widget_propagate_state (child, &child_data); + for (child = _gtk_widget_get_first_child (widget); + child != NULL; + child = _gtk_widget_get_next_sibling (child)) + { + gtk_widget_propagate_state (child, &child_data); + } } g_object_unref (widget);