[gtk+/native-layout] Now gtk_extended_layout_get_desired_size() returns a minimum for minimum in the minimum requisition



commit 8b57ad94c0e8fb09de4dcde71c53e57fef55299f
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Sat Apr 17 22:52:27 2010 -0400

    Now gtk_extended_layout_get_desired_size() returns a minimum for minimum in the minimum requisition and a natural for minimum in the natural.

 gtk/gtkextendedlayout.c |   43 +++++++++++++++++++++++--------------------
 1 files changed, 23 insertions(+), 20 deletions(-)
---
diff --git a/gtk/gtkextendedlayout.c b/gtk/gtkextendedlayout.c
index 0ca1658..f08fced 100644
--- a/gtk/gtkextendedlayout.c
+++ b/gtk/gtkextendedlayout.c
@@ -32,7 +32,7 @@
 #define DEBUG_EXTENDED_LAYOUT 0
 
 /* With extended layout, a widget may be requested
- * its width for 2 or 3 heights in one resize
+ * its width for 2 or maximum 3 heights in one resize
  */
 #define N_CACHED_SIZES 3
 
@@ -191,22 +191,18 @@ compute_size_for_orientation (GtkExtendedLayout *layout,
 	  requisition_size = widget->requisition.width;
 
 	  if (for_size < 0)
-	    GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->
-	      get_desired_width (layout, &min_size, &nat_size);
+	    GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->get_desired_width (layout, &min_size, &nat_size);
 	  else
-	    GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->
-	      get_width_for_height (layout, for_size, &min_size, &nat_size);
+	    GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->get_width_for_height (layout, for_size, &min_size, &nat_size);
 	}
       else
 	{
 	  requisition_size = widget->requisition.height;
 
 	  if (for_size < 0)
-	      GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->
-		get_desired_height (layout, &min_size, &nat_size);
+	    GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->get_desired_height (layout, &min_size, &nat_size);
 	  else
-	    GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->
-	      get_height_for_width (layout, for_size, &min_size, &nat_size);
+	    GTK_EXTENDED_LAYOUT_GET_IFACE (layout)->get_height_for_width (layout, for_size, &min_size, &nat_size);
 	}
 
       /* Support for dangling "size-request" signals and forward derived
@@ -241,6 +237,7 @@ compute_size_for_orientation (GtkExtendedLayout *layout,
       group_size = 
 	_gtk_size_group_bump_requisition (GTK_WIDGET (layout), 
 					  orientation, cached_size->minimum_size);
+
       cached_size->minimum_size = MAX (cached_size->minimum_size, group_size);
       cached_size->natural_size = MAX (cached_size->natural_size, group_size);
     }
@@ -258,7 +255,7 @@ compute_size_for_orientation (GtkExtendedLayout *layout,
   g_message ("%s size for orientation %s: %d is minimum %d and natural: %d",
 	     G_OBJECT_TYPE_NAME (layout), 
 	     orientation == GTK_SIZE_GROUP_HORIZONTAL ? "horizontal" : "vertical",
-	     height,
+	     for_size,
 	     cached_size->minimum_size,
 	     cached_size->natural_size);
 #endif
@@ -402,12 +399,18 @@ gtk_extended_layout_get_desired_size (GtkExtendedLayout *layout,
   if (gtk_extended_layout_is_height_for_width (layout))
     {
       gtk_extended_layout_get_desired_width (layout, &min_width, &nat_width);
-      gtk_extended_layout_get_height_for_width (layout, nat_width, &min_height, &nat_height);
+      gtk_extended_layout_get_height_for_width (layout, min_width, &min_height, &nat_height);
+
+#if DEBUG_EXTENDED_LAYOUT
+  g_message ("%s get_desired_size min height: %d for natural width: %d",
+	     G_OBJECT_TYPE_NAME (layout), 
+	     min_height, nat_width);
+#endif
 
       /* The minimum size here is the minimum height for the natrual width */
       if (minimum_size)
 	{
-	  minimum_size->width  = nat_width; 
+	  minimum_size->width  = min_width; 
 	  minimum_size->height = min_height;
 	}
       
@@ -415,13 +418,19 @@ gtk_extended_layout_get_desired_size (GtkExtendedLayout *layout,
   else
     {
       gtk_extended_layout_get_desired_height (layout, &min_height, &nat_height);
-      gtk_extended_layout_get_height_for_width (layout, nat_height, &min_width, &nat_width);
+      gtk_extended_layout_get_height_for_width (layout, min_height, &min_width, &nat_width);
+
+#if DEBUG_EXTENDED_LAYOUT
+  g_message ("%s get_desired_size min width: %d for natural height: %d",
+	     G_OBJECT_TYPE_NAME (layout), 
+	     min_width, nat_height);
+#endif
 
       /* The minimum size here is the minimum width for the natrual height */
       if (minimum_size)
 	{
 	  minimum_size->width  = min_width; 
-	  minimum_size->height = nat_height;
+	  minimum_size->height = min_height;
 	}
     }
 
@@ -430,12 +439,6 @@ gtk_extended_layout_get_desired_size (GtkExtendedLayout *layout,
       natural_size->width  = nat_width; 
       natural_size->height = nat_height;
     }
-
-
-#if DEBUG_EXTENDED_LAYOUT
-  g_message ("get_desired_size called on a %s; minimum width: %d natural width: %d minimum height %d natural height %d",
-	     G_OBJECT_TYPE_NAME (layout), min_width, nat_width, min_height, nat_height);
-#endif
 }
 
 



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