appDisplay: Save pages after dropping

Save the icon grid layout after dropping, and only in
that moment.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284
This commit is contained in:
Georges Basile Stavracas Neto 2020-05-26 01:41:17 -03:00 committed by Florian Müllner
parent e1ea1d2954
commit e3f3297cba

View File

@ -730,6 +730,25 @@ class AppDisplay extends BaseAppView {
super._redisplay(); super._redisplay();
} }
_savePages() {
const pages = [];
for (let i = 0; i < this._grid.nPages; i++) {
const pageItems =
this._grid.getItemsAtPage(i).filter(c => c.visible);
const pageData = {};
pageItems.forEach((item, index) => {
pageData[item.id] = {
position: GLib.Variant.new_int32(index),
};
});
pages.push(pageData);
}
this._pageManager.pages = pages;
}
_itemNameChanged(item) { _itemNameChanged(item) {
// If an item's name changed, we can pluck it out of where it's // If an item's name changed, we can pluck it out of where it's
// supposed to be and reinsert it where it's sorted. // supposed to be and reinsert it where it's sorted.
@ -1070,6 +1089,8 @@ class AppDisplay extends BaseAppView {
this._removeDelayedMove(); this._removeDelayedMove();
} }
this._savePages();
let view = _getViewFromIcon(source); let view = _getViewFromIcon(source);
if (view instanceof FolderView) if (view instanceof FolderView)
view.removeApp(source.app); view.removeApp(source.app);