forked from AuroraMiddleware/gtk
Take extended layout into account in viewport
Make sure the right height is used in GtkViewPort.
This commit is contained in:
parent
c4dec47536
commit
0fbdb3c73f
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user