From 0fbdb3c73f29905dc3f5a5776e3e3f142b9722c2 Mon Sep 17 00:00:00 2001 From: Jan Arne Petersen Date: Thu, 1 Apr 2010 11:53:41 +0200 Subject: [PATCH] Take extended layout into account in viewport Make sure the right height is used in GtkViewPort. --- gtk/gtkviewport.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c index bfda9f28bf..3f3d346287 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;