From 76443e91cdf75a87106175afba87c01ccd1edf07 Mon Sep 17 00:00:00 2001
From: Owen W. Taylor <otaylor@fishsoup.net>
Date: Mon, 21 Sep 2009 18:27:22 -0400
Subject: [PATCH] Allocate children as wide as the scrolled area

When we are scrolling a vertical box horizontally , children should be
allocated horizontally as wide as the full horizontal scrolled area,
not just to the size of the "viewport". Similarly for a horizontal box.

http://bugzilla.moblin.org/show_bug.cgi?id=6312
https://bugzilla.gnome.org/show_bug.cgi?id=595996
---
 src/st/st-box-layout.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/st/st-box-layout.c b/src/st/st-box-layout.c
index af31843..2bbbf75 100644
--- a/src/st/st-box-layout.c
+++ b/src/st/st-box-layout.c
@@ -855,7 +855,10 @@ st_box_layout_allocate (ClutterActor          *actor,
           child_box.y1 = (int)(0.5 + position);
           child_box.y2 = (int)(0.5 + next_position);
           child_box.x1 = content_box.x1;
-          child_box.x2 = content_box.x2;
+          if (priv->hadjustment)
+            child_box.x2 = content_box.x1 + MAX (avail_width, natural_width);
+          else
+            child_box.x2 = content_box.x2;
 
           _st_allocate_fill (child, &child_box, xalign, yalign, xfill, yfill);
           clutter_actor_allocate (child, &child_box, flags);
@@ -866,7 +869,10 @@ st_box_layout_allocate (ClutterActor          *actor,
           child_box.x1 = (int)(0.5 + position);
           child_box.x2 = (int)(0.5 + next_position);
           child_box.y1 = content_box.y1;
-          child_box.y2 = content_box.y2;
+          if (priv->vadjustment)
+            child_box.y2 = content_box.y1 + MAX (avail_height, natural_height);
+          else
+            child_box.y2 = content_box.y2;
 
           _st_allocate_fill (child, &child_box, xalign, yalign, xfill, yfill);
           clutter_actor_allocate (child, &child_box, flags);
-- 
1.6.2.5