switcherPopup: Fix scrollable check

When commit c6cea277e replaced Shell.GenericContainer, the check
whether the required width exceeds the avilable width was changed
from using the minimum widths of items to the natural width of the
scroll view.

That doesn't work correctly, as the *natural* width may well exceed
the actually used width: SwitcherList bases its width request on
children's minimum sizes to force labels to ellipsize.

Fix this by using the minimum width of the scroll view's child instead.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1834
This commit is contained in:
Florian Müllner 2019-11-29 01:11:16 +01:00
parent 5f9036e815
commit 867cffaf20

View File

@ -575,10 +575,10 @@ var SwitcherList = GObject.registerClass({
let leftPadding = this.get_theme_node().get_padding(St.Side.LEFT); let leftPadding = this.get_theme_node().get_padding(St.Side.LEFT);
let rightPadding = this.get_theme_node().get_padding(St.Side.RIGHT); let rightPadding = this.get_theme_node().get_padding(St.Side.RIGHT);
let [, natScrollViewWidth] = this._scrollView.get_preferred_width(height); let [minListWidth] = this._list.get_preferred_width(height);
let childBox = new Clutter.ActorBox(); let childBox = new Clutter.ActorBox();
let scrollable = natScrollViewWidth > width; let scrollable = minListWidth > width;
this._scrollView.allocate(contentBox, flags); this._scrollView.allocate(contentBox, flags);