Take extended layout into account in viewport

Make sure the right height is used in GtkViewPort.
This commit is contained in:
Jan Arne Petersen 2010-04-01 11:53:41 +02:00 committed by Tristan Van Berkom
parent c4dec47536
commit 0fbdb3c73f

View File

@ -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;