[gtk+/native-layout] Take extended layout into account in viewport



commit 0fbdb3c73f29905dc3f5a5776e3e3f142b9722c2
Author: Jan Arne Petersen <jpetersen jpetersen org>
Date:   Thu Apr 1 11:53:41 2010 +0200

    Take extended layout into account in viewport
    
    Make sure the right height is used in GtkViewPort.

 gtk/gtkviewport.c |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c
index bfda9f2..3f3d346 100644
--- a/gtk/gtkviewport.c
+++ b/gtk/gtkviewport.c
@@ -26,6 +26,7 @@
 
 #include "config.h"
 #include "gtkviewport.h"
+#include "gtkextendedlayout.h"
 #include "gtkintl.h"
 #include "gtkmarshalers.h"
 #include "gtkprivate.h"
@@ -417,10 +418,23 @@ viewport_set_vadjustment_values (GtkViewport *viewport,
 
   if (bin->child && gtk_widget_get_visible (bin->child))
     {
-      GtkRequisition child_requisition;
-      
-      gtk_widget_get_child_requisition (bin->child, &child_requisition);
-      vadjustment->upper = MAX (child_requisition.height, view_allocation.height);
+      if (GTK_IS_EXTENDED_LAYOUT (bin->child))
+        {
+          gint natural_height;
+
+          gtk_extended_layout_get_height_for_width (GTK_EXTENDED_LAYOUT (bin->child),
+                                                    view_allocation.width,
+                                                    NULL,
+                                                    &natural_height);
+          vadjustment->upper = MAX (natural_height, view_allocation.height);
+        }
+      else
+        {
+          GtkRequisition child_requisition;
+
+          gtk_widget_get_child_requisition (bin->child, &child_requisition);
+          vadjustment->upper = MAX (child_requisition.height, view_allocation.height);
+        }
     }
   else
     vadjustment->upper = view_allocation.height;



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