From 2ac82da232c1b8f3327d6fe95bb25bc0a2ad87b0 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 --- src/nbtk/nbtk-box-layout.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/nbtk/nbtk-box-layout.c b/src/nbtk/nbtk-box-layout.c index 530fbc486..86c709608 100644 --- a/src/nbtk/nbtk-box-layout.c +++ b/src/nbtk/nbtk-box-layout.c @@ -840,7 +840,10 @@ nbtk_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; _nbtk_allocate_fill (child, &child_box, xalign, yalign, xfill, yfill); clutter_actor_allocate (child, &child_box, flags); @@ -851,7 +854,10 @@ nbtk_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; _nbtk_allocate_fill (child, &child_box, xalign, yalign, xfill, yfill); clutter_actor_allocate (child, &child_box, flags);