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
This commit is contained in:
Owen W. Taylor 2009-09-21 18:27:22 -04:00
parent 1ec8e9eb6b
commit 28dbf7a06e

View File

@ -855,7 +855,10 @@ st_box_layout_allocate (ClutterActor *actor,
child_box.y1 = (int)(0.5 + position); child_box.y1 = (int)(0.5 + position);
child_box.y2 = (int)(0.5 + next_position); child_box.y2 = (int)(0.5 + next_position);
child_box.x1 = content_box.x1; 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); _st_allocate_fill (child, &child_box, xalign, yalign, xfill, yfill);
clutter_actor_allocate (child, &child_box, flags); 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.x1 = (int)(0.5 + position);
child_box.x2 = (int)(0.5 + next_position); child_box.x2 = (int)(0.5 + next_position);
child_box.y1 = content_box.y1; 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); _st_allocate_fill (child, &child_box, xalign, yalign, xfill, yfill);
clutter_actor_allocate (child, &child_box, flags); clutter_actor_allocate (child, &child_box, flags);