]> Pileus Git - ~andy/gtk/commitdiff
widget: Always propagate state flags to all children
authorRui Matos <tiagomatos@gmail.com>
Sun, 11 Dec 2011 19:20:02 +0000 (19:20 +0000)
committerRui Matos <tiagomatos@gmail.com>
Mon, 19 Dec 2011 19:21:15 +0000 (19:21 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=666126

gtk/gtkwidget.c

index 28a18fb231fcc4f211a293ba8c24b19c4ec0ef6f..561aa8932e9145b247a4aadcfce88114124e2a82 100644 (file)
@@ -532,7 +532,6 @@ struct _GtkStateData
 {
   guint         flags : GTK_STATE_FLAGS_BITS;
   guint         operation : 2;
-  guint                use_forall : 1;
 };
 
 /* --- prototypes --- */
@@ -7092,7 +7091,6 @@ _gtk_widget_update_state_flags (GtkWidget     *widget,
 
       data.flags = flags;
       data.operation = operation;
-      data.use_forall = FALSE;
 
       gtk_widget_propagate_state (widget, &data);
 
@@ -7687,8 +7685,6 @@ gtk_widget_set_sensitive (GtkWidget *widget,
       else
         data.operation = STATE_CHANGE_SET;
 
-      data.use_forall = TRUE;
-
       gtk_widget_propagate_state (widget, &data);
 
       gtk_widget_queue_resize (widget);
@@ -7804,7 +7800,6 @@ gtk_widget_set_parent (GtkWidget *widget,
   data.flags |= priv->state_flags;
 
   data.operation = STATE_CHANGE_REPLACE;
-  data.use_forall = gtk_widget_is_sensitive (parent) != gtk_widget_is_sensitive (widget);
   gtk_widget_propagate_state (widget, &data);
 
   gtk_widget_reset_style (widget);
@@ -10760,14 +10755,9 @@ gtk_widget_propagate_state (GtkWidget    *widget,
           /* Make sure to only propate the right states further */
           child_data.flags &= GTK_STATE_FLAGS_DO_PROPAGATE;
 
-          if (child_data.use_forall)
-            gtk_container_forall (GTK_CONTAINER (widget),
-                                  (GtkCallback) gtk_widget_propagate_state,
-                                  &child_data);
-          else
-            gtk_container_foreach (GTK_CONTAINER (widget),
-                                   (GtkCallback) gtk_widget_propagate_state,
-                                   &child_data);
+          gtk_container_forall (GTK_CONTAINER (widget),
+                                (GtkCallback) gtk_widget_propagate_state,
+                                &child_data);
         }
 
       /* Trigger state change transitions for the widget */