From 76443e91cdf75a87106175afba87c01ccd1edf07 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" 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 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/st/st-box-layout.c b/src/st/st-box-layout.c index af318435e..2bbbf7541 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);