[gnome-shell/gbsneto/custom-icon-positions: 5/27] appDisplay: Factor out item addition and removal methods
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/custom-icon-positions: 5/27] appDisplay: Factor out item addition and removal methods
- Date: Thu, 25 Jun 2020 19:57:25 +0000 (UTC)
commit 2ba47c468e15d13b52e317aff907a4098c7e3572
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue May 26 10:58:17 2020 -0300
appDisplay: Factor out item addition and removal methods
It'll be useful later.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284
js/ui/appDisplay.js | 35 ++++++++++++++++++++++++++++++-----
1 file changed, 30 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index d9854163bf..7f09f1ad7c 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -274,6 +274,35 @@ var BaseAppView = GObject.registerClass({
});
}
+ _addItem(item, page, position) {
+ let itemIndex = 0;
+
+ if (this._grid.nPages > 0) {
+ const realPage = page !== -1 ? page : Math.max(this._grid.nPages - 1, 0);
+
+ itemIndex = position !== -1
+ ? position
+ : this._grid.getItemsAtPage(realPage).filter(c => c.visible).length - 1;
+
+ for (let i = 0; i < realPage; i++) {
+ const pageItems = this._grid.getItemsAtPage(i).filter(c => c.visible);
+ itemIndex += pageItems.length;
+ }
+ }
+
+ this._orderedItems.splice(itemIndex, 0, item);
+ this._items.set(item.id, item);
+ this._grid.addItem(item, page, position);
+ }
+
+ _removeItem(item) {
+ const iconIndex = this._orderedItems.indexOf(item);
+
+ this._orderedItems.splice(iconIndex, 1);
+ this._items.delete(item.id);
+ this._grid.removeItem(item);
+ }
+
_redisplay() {
let oldApps = this._orderedItems.slice();
let oldAppIds = oldApps.map(icon => icon.id);
@@ -286,12 +315,8 @@ var BaseAppView = GObject.registerClass({
// Remove old app icons
removedApps.forEach(icon => {
- let iconIndex = this._orderedItems.indexOf(icon);
- let id = icon.id;
-
- this._orderedItems.splice(iconIndex, 1);
+ this._removeItem(icon);
icon.destroy();
- this._items.delete(id);
});
// Add new app icons
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]