After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 671370 - gtk_widget_propagate_state() should queue a resize on every touched widget
gtk_widget_propagate_state() should queue a resize on every touched widget
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: .General
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2012-03-05 15:00 UTC by Rui Matos
Modified: 2018-01-17 03:55 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Rui Matos 2012-03-05 15:00:51 UTC
Something like:

diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 0e4d198..567ac3e 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -10812,6 +10812,8 @@ gtk_widget_propagate_state (GtkWidget    *widget,
             }
         }
 
+      gtk_widget_queue_resize (widget);
+
       g_object_unref (widget);
     }
 }


This is the correct thing to do but it seems to add about 50% more time to propagate a new flag from the toplevel to every widget on widget-factory. Needs more investigation about what is taking up that extra time.
Comment 1 Matthias Clasen 2018-01-17 03:55:37 UTC
I'm pretty sure it does that already