appDisplay: Add items in order
Add app icons to the exact page and position they're located instead of always appending. This will be useful later when custom icon positions are in place. For now, it assumes pages are always filled, which is true, but this will also change with custom icon positions. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1271
This commit is contained in:
parent
75c4e1cd63
commit
6ba2913075
@ -159,12 +159,16 @@ var BaseAppView = GObject.registerClass({
|
||||
});
|
||||
|
||||
// Add new app icons
|
||||
const { itemsPerPage } = this._grid;
|
||||
addedApps.forEach(icon => {
|
||||
let iconIndex = newApps.indexOf(icon);
|
||||
|
||||
this._orderedItems.splice(iconIndex, 0, icon);
|
||||
this._grid.addItem(icon);
|
||||
this._items.set(icon.id, icon);
|
||||
|
||||
const page = Math.floor(iconIndex / itemsPerPage);
|
||||
const position = iconIndex % itemsPerPage;
|
||||
this._grid.addItem(icon, page, position);
|
||||
});
|
||||
|
||||
this._viewIsReady = true;
|
||||
@ -445,7 +449,12 @@ class AppDisplay extends BaseAppView {
|
||||
let newIdx = Util.insertSorted(this._orderedItems, item, this._compareItems);
|
||||
|
||||
this._grid.removeItem(item);
|
||||
this._grid.addItem(item, -1, newIdx);
|
||||
|
||||
const { itemsPerPage } = this._grid;
|
||||
const page = Math.floor(newIdx / itemsPerPage);
|
||||
const position = newIdx % itemsPerPage;
|
||||
this._grid.addItem(item, page, position);
|
||||
|
||||
this.selectApp(item.id);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user