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


(cherry picked from commit 867cffaf20)
This commit is contained in:
Florian Müllner 2019-11-29 00:11:16 +00:00 committed by Florian Müllner
parent bb24df2f9d
commit a7b0e96304

View File

@ -568,10 +568,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);