st/viewport: Only extend child allocation when scrolled
When scrolled, the container's allocation is smaller than the allocation
of the content. To account for that, commit 2717ca9d08
added the
additional size reported by the layout manager to the content allocation.
However as it did so unconditionally, we now allow children to extend
outside the parent even when *not* scrolled, which breaks any constraints
set on the container (like "width" or "max-height").
Fix this by only extending the child allocation in scrollable dimensions.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2491
This commit is contained in:
parent
6dbcb5f9da
commit
481014ac9e
@ -261,8 +261,10 @@ st_viewport_allocate (ClutterActor *actor,
|
|||||||
clutter_actor_set_allocation (actor, box);
|
clutter_actor_set_allocation (actor, box);
|
||||||
|
|
||||||
content_box = viewport_box;
|
content_box = viewport_box;
|
||||||
content_box.x2 += MAX (0, min_width - avail_width);
|
if (priv->hadjustment)
|
||||||
content_box.y2 += MAX (0, min_height - avail_height);
|
content_box.x2 += MAX (0, min_width - avail_width);
|
||||||
|
if (priv->vadjustment)
|
||||||
|
content_box.y2 += MAX (0, min_height - avail_height);
|
||||||
|
|
||||||
clutter_layout_manager_allocate (layout, CLUTTER_CONTAINER (actor),
|
clutter_layout_manager_allocate (layout, CLUTTER_CONTAINER (actor),
|
||||||
&content_box);
|
&content_box);
|
||||||
|
Loading…
Reference in New Issue
Block a user