[gnome-shell/wip/clutter-deprecation-fixes: 15/25] st-widget: Implement a proper get_preferred_width/height



commit f82ec021663ba8d7c44837a217ff4f0f8eff346c
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Feb 13 18:39:17 2012 -0500

    st-widget: Implement a proper get_preferred_width/height
    
    Now that StWidget is concrete and instantiable, we need to do something
    other than return an adjusted 0 for width and height. Just chain up
    to ClutterActor's default implementation, which uses the layout manager.

 src/st/st-widget.c |   20 ++++----------------
 1 files changed, 4 insertions(+), 16 deletions(-)
---
diff --git a/src/st/st-widget.c b/src/st/st-widget.c
index 3175973..072fb87 100644
--- a/src/st/st-widget.c
+++ b/src/st/st-widget.c
@@ -348,17 +348,9 @@ st_widget_get_preferred_width (ClutterActor *self,
 {
   StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
 
-  /* Most subclasses will override this and not chain down. However,
-   * if they do not, then we need to override ClutterActor's default
-   * behavior (request 0x0) to take CSS-specified minimums into
-   * account (which st_theme_node_adjust_preferred_width() will do.)
-   */
-
-  if (min_width_p)
-    *min_width_p = 0;
+  st_theme_node_adjust_for_width (theme_node, &for_height);
 
-  if (natural_width_p)
-    *natural_width_p = 0;
+  CLUTTER_ACTOR_CLASS (st_widget_parent_class)->get_preferred_width (self, for_height, min_width_p, natural_width_p);
 
   st_theme_node_adjust_preferred_width (theme_node, min_width_p, natural_width_p);
 }
@@ -371,13 +363,9 @@ st_widget_get_preferred_height (ClutterActor *self,
 {
   StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
 
-  /* See st_widget_get_preferred_width() */
-
-  if (min_height_p)
-    *min_height_p = 0;
+  st_theme_node_adjust_for_width (theme_node, &for_width);
 
-  if (natural_height_p)
-    *natural_height_p = 0;
+  CLUTTER_ACTOR_CLASS (st_widget_parent_class)->get_preferred_height (self, for_width, min_height_p, natural_height_p);
 
   st_theme_node_adjust_preferred_height (theme_node, min_height_p, natural_height_p);
 }



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