box-layout: Fix child offsets
Currently, BoxLayout interprets the box passed into allocate() in a fairly peculiar way: - in the direction of the box, all space between [xy]1 and [xy]2 is distributed among children (e.g. children occupy the entire width/height of the box, offset by [xy]1) - in the opposite direction, expanded children receive space between [xy]1 and the height/width of the box (e.g. children occupy the width/height of the box minus [xy]1, offset by [xy]1) The second behavior doesn't make much sense, so adjust it to interpret the box parameter in the same way as the first one. https://bugzilla.gnome.org/show_bug.cgi?id=703809
This commit is contained in:
parent
5bab9a8655
commit
5dd2dcf14f
@ -1100,7 +1100,7 @@ clutter_box_layout_allocate (ClutterLayoutManager *layout,
|
||||
if (priv->orientation == CLUTTER_ORIENTATION_VERTICAL)
|
||||
{
|
||||
child_allocation.x1 = box->x1;
|
||||
child_allocation.x2 = MAX (1.0, box->x2 - box->x1);
|
||||
child_allocation.x2 = MAX (1.0, box->x2);
|
||||
if (priv->is_pack_start)
|
||||
y = box->y2 - box->y1;
|
||||
else
|
||||
@ -1109,7 +1109,7 @@ clutter_box_layout_allocate (ClutterLayoutManager *layout,
|
||||
else
|
||||
{
|
||||
child_allocation.y1 = box->y1;
|
||||
child_allocation.y2 = MAX (1.0, box->y2 - box->y1);
|
||||
child_allocation.y2 = MAX (1.0, box->y2);
|
||||
if (priv->is_pack_start)
|
||||
x = box->x2 - box->x1;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user