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
222698954f
commit
0790503f16
@ -262,8 +262,10 @@ st_viewport_allocate (ClutterActor *actor,
|
|||||||
clutter_actor_set_allocation (actor, box, flags);
|
clutter_actor_set_allocation (actor, box, flags);
|
||||||
|
|
||||||
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, flags);
|
&content_box, flags);
|
||||||
|
Loading…
Reference in New Issue
Block a user