[gnome-shell/gbsneto/icon-grid-part1: 14/19] baseAppView: Add only	non-added icons, in order
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gnome-shell/gbsneto/icon-grid-part1: 14/19] baseAppView: Add only	non-added icons, in order
- Date: Mon,  5 Aug 2019 20:47:07 +0000 (UTC)
commit 36f009c37fbdec81b01d4616aa58a0b53dfd818a
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Jul 1 23:01:59 2019 -0300
    baseAppView: Add only non-added icons, in order
    
    In the close future, BaseAppView will only add new icons (compared
    to the remove all + readd all approach that is now). With that, the
    items in the this._allItems array will be iterated multiple times,
    but items can only be added once, and in the order they're in the
    array.
    
    Add the items in the this._allItems array passing the index they
    should be added, and don't add icons with a parent already set.
    
    In addition to that, rename _loadGrid() to _updateGrid() in order
    to match the new semantics of it.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645
 js/ui/appDisplay.js | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 6bdd2ee51..df51ab305 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -123,7 +123,7 @@ class BaseAppView {
     _redisplay() {
         this.removeAll();
         this._loadApps();
-        this._loadGrid();
+        this._updateGrid();
     }
 
     getAllItems() {
@@ -147,9 +147,17 @@ class BaseAppView {
         return a.name.localeCompare(b.name);
     }
 
-    _loadGrid() {
+    _updateGrid() {
         this._allItems.sort(this._compareItems);
-        this._allItems.forEach(item => this._grid.addItem(item));
+
+        this._allItems.forEach((item, index) => {
+            // Don't readd already added items
+            if (item.actor.get_parent())
+                return;
+
+            this._grid.addItem(item, index);
+        });
+
         this.emit('view-loaded');
     }
 
@@ -420,8 +428,8 @@ var AllView = class AllView extends BaseAppView {
         });
     }
 
-    _loadGrid() {
-        super._loadGrid();
+    _updateGrid() {
+        super._updateGrid();
         this._refilterApps();
     }
 
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]