From 062c014223c605ba3cdedf28ef21ecfadda58046 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Wed, 23 Sep 2020 16:53:17 -0300 Subject: [PATCH] appDisplay: Use new moveItem API to move items This uses the API added in the previous commit. The intent here is to avoid removing and readding actors when moving them around. Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3165 https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447 --- js/ui/appDisplay.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 9094fcf03..3f2f60542 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -746,10 +746,14 @@ var BaseAppView = GObject.registerClass({ if (page === newPage && position === newPosition) return; - if (page !== -1 && position !== -1) - this._removeItem(item); + // Update the _orderedItems array + let index = this._orderedItems.indexOf(item); + this._orderedItems.splice(index, 1); - this._addItem(item, newPage, newPosition); + index = this._getLinearPosition(newPage, newPosition); + this._orderedItems.splice(index, 0, item); + + this._grid.moveItem(item, newPage, newPosition); } vfunc_allocate(box) {