[gtk+/native-layout] Fixed height-for-width cache



commit ee8db39393fe0246461d06d88515446b057dcc54
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Mon Apr 19 20:41:23 2010 -0400

    Fixed height-for-width cache
    
    Fixed the cache to be cleared when flagged with WIDTH/HEIGHT_REQUEST_NEEDED.
    This error was causing some widgets to not be sized correctly (the stock and
    icon browser in the demo for instance).

 gtk/gtkextendedlayout.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkextendedlayout.c b/gtk/gtkextendedlayout.c
index b764f46..b95c5b7 100644
--- a/gtk/gtkextendedlayout.c
+++ b/gtk/gtkextendedlayout.c
@@ -129,6 +129,7 @@ get_cache (GtkExtendedLayout *layout, gboolean create)
   return cache;
 }
 
+
 static void
 do_size_request (GtkWidget *widget)
 {
@@ -166,6 +167,8 @@ compute_size_for_orientation (GtkExtendedLayout *layout,
       
       if (GTK_WIDGET_WIDTH_REQUEST_NEEDED (layout) == FALSE)
 	found_in_cache = get_cached_desired_size (for_size, cache->desired_widths, &cached_size);
+      else
+	memset (cache->desired_widths, 0x0, N_CACHED_SIZES * sizeof (DesiredSize));
     }
   else
     {
@@ -173,6 +176,8 @@ compute_size_for_orientation (GtkExtendedLayout *layout,
       
       if (GTK_WIDGET_WIDTH_REQUEST_NEEDED (layout) == FALSE)
 	found_in_cache = get_cached_desired_size (for_size, cache->desired_heights, &cached_size);
+      else
+	memset (cache->desired_heights, 0x0, N_CACHED_SIZES * sizeof (DesiredSize));
     }
     
   if (!found_in_cache)



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