[gtk+/wip/css-optimize2: 10/10] Don't queue resize for hidden widgets without a size group



commit 21ff39ba8a685e2c87f26f7271877d1eeadcb3ed
Author: Alexander Larsson <alexl redhat com>
Date:   Tue Dec 4 16:53:06 2012 +0100

    Don't queue resize for hidden widgets without a size group
    
    queue_resize basically tells the parent widget that it may need
    to pick a different size/layout. However, for a hidden child widget
    that should never be needed. It may be that the widget is in a
    sizegroup that has ignore_hidden == FALSE though, so it may
    affect the size group calculations.
    
    However, if a widget is not visible and not in a size group then
    its safe to avoid the resize, as the widget will be resized on
    becoming visible anyway.
    
    This avoids a lot of size allocation for hidden things like menus
    and tooltips.

 gtk/gtkwidget.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 9141a70..1350af5 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -4654,7 +4654,9 @@ gtk_widget_queue_resize (GtkWidget *widget)
   if (gtk_widget_get_realized (widget))
     gtk_widget_queue_draw (widget);
 
-  _gtk_size_group_queue_resize (widget, 0);
+  if (gtk_widget_get_visible (widget) ||
+      widget->priv->have_size_groups)
+    _gtk_size_group_queue_resize (widget, 0);
 }
 
 /**



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]