[gnome-shell/gbsneto/custom-icon-positions: 43/60] appDisplay: Save pages after dropping



commit 7e71af6d15e6efdce6f9b94706b1befe7eb81df1
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Tue May 26 01:41:17 2020 -0300

    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

 js/ui/appDisplay.js | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 10f918c5b9..043f166075 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -696,6 +696,26 @@ class AppDisplay extends BaseAppView {
         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 = {};
+
+            for (let itemIndex in pageItems) {
+                const item = pageItems[itemIndex];
+                pageData[item.id] = {
+                    position: GLib.Variant.new_int32(itemIndex),
+                };
+            }
+            pages.push(pageData);
+        }
+
+        this._pageManager.pages = pages;
+    }
+
     _itemNameChanged(item) {
         // 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.
@@ -1071,6 +1091,8 @@ class AppDisplay extends BaseAppView {
             this._removeDelayedMove();
         }
 
+        this._savePages();
+
         let view = _getViewFromIcon(source);
         if (view instanceof FolderView)
             view.removeApp(source.app);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]