appDisplay/baseAppView: Update page indicators on page-changed

The number of pages doesn't depend on the allocated size anymore. Move updating
page indicators from BaseAppView.adaptToSize() to a IconGrid::pages-changed
callback.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>
This commit is contained in:
Georges Basile Stavracas Neto 2020-12-02 15:58:49 -03:00 committed by Marge Bot
parent b120b17d01
commit 10d91b52e7

View File

@ -138,6 +138,12 @@ var BaseAppView = GObject.registerClass({
this._grid._delegate = this; this._grid._delegate = this;
// Standard hack for ClutterBinLayout // Standard hack for ClutterBinLayout
this._grid.x_expand = true; this._grid.x_expand = true;
this._grid.connect('pages-changed', () => {
this._adjustment.value = 0;
this.goToPage(this._grid.currentPage);
this._pageIndicators.setNPages(this._grid.nPages);
this._pageIndicators.setCurrentPosition(this._grid.currentPage);
});
const vertical = orientation === Clutter.Orientation.VERTICAL; const vertical = orientation === Clutter.Orientation.VERTICAL;
@ -850,18 +856,6 @@ var BaseAppView = GObject.registerClass({
this._grid.adaptToSize(availWidth, availHeight); this._grid.adaptToSize(availWidth, availHeight);
if (this._availWidth !== availWidth ||
this._availHeight !== availHeight ||
this._pageIndicators.nPages !== this._grid.nPages) {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._adjustment.value = 0;
this.goToPage(this._grid.currentPage);
this._pageIndicators.setNPages(this._grid.nPages);
this._pageIndicators.setCurrentPosition(this._grid.currentPage);
return GLib.SOURCE_REMOVE;
});
}
this._availWidth = availWidth; this._availWidth = availWidth;
this._availHeight = availHeight; this._availHeight = availHeight;
} }