From daa7edb72c775b32bd14cc0b58db1d9f30c7386c Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Sep 29 2020 07:08:38 +0000 Subject: import gnome-shell-extensions-3.28.1-14.el7 --- diff --git a/SOURCES/0001-A-couple-of-more-backport-fixes.patch b/SOURCES/0001-A-couple-of-more-backport-fixes.patch deleted file mode 100644 index c67a99e..0000000 --- a/SOURCES/0001-A-couple-of-more-backport-fixes.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 269f2433b79668143e601f88af74cac0bbe2d77f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Tue, 3 Dec 2019 15:51:06 +0100 -Subject: [PATCH] A couple of more backport fixes - ---- - extensions/horizontal-workspaces/extension.js | 2 +- - extensions/window-list/windowPicker.js | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/extensions/horizontal-workspaces/extension.js b/extensions/horizontal-workspaces/extension.js -index bade48b..c9a3d13 100644 ---- a/extensions/horizontal-workspaces/extension.js -+++ b/extensions/horizontal-workspaces/extension.js -@@ -17,7 +17,7 @@ class Extension { - -1); - - ThumbnailsBox.prototype._updateSwitcherVisibility = function() { -- this.hide(); -+ this.actor.hide(); - }; - } - -diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js -index 461a4d1..4895ae5 100644 ---- a/extensions/window-list/windowPicker.js -+++ b/extensions/window-list/windowPicker.js -@@ -199,7 +199,7 @@ var WindowPicker = class { - }); - - if (!this._modal) { -- this.hide(); -+ this.actor.hide(); - return false; - } - } else if (this._modal) { --- -2.23.0 - diff --git a/SOURCES/0001-dashToDock-Handle-no-overview-case.patch b/SOURCES/0001-dashToDock-Handle-no-overview-case.patch new file mode 100644 index 0000000..df835ec --- /dev/null +++ b/SOURCES/0001-dashToDock-Handle-no-overview-case.patch @@ -0,0 +1,207 @@ +From 734ae4107b71a21f7d85ffb820e3d3542af48617 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Mon, 24 Feb 2020 16:17:05 +0100 +Subject: [PATCH] dashToDock: Handle no-overview case + +There is no longer an overview in GNOME Classic, so in order to be +used in that environment, the extension must deal with that case. +--- + extensions/dash-to-dock/docking.js | 126 ++++++++++++++++------------- + 1 file changed, 70 insertions(+), 56 deletions(-) + +diff --git a/extensions/dash-to-dock/docking.js b/extensions/dash-to-dock/docking.js +index 11810a1..0763cb1 100644 +--- a/extensions/dash-to-dock/docking.js ++++ b/extensions/dash-to-dock/docking.js +@@ -244,7 +244,7 @@ const DockedDash = new Lang.Class({ + // Create a new dash object + this.dash = new MyDash.MyDash(this._settings, this._remoteModel, this._monitorIndex); + +- if (!this._settings.get_boolean('show-show-apps-button')) ++ if (Main.overview.isDummy || !this._settings.get_boolean('show-show-apps-button')) + this.dash.hideShowAppsButton(); + + // Create the main actor and the containers for sliding in and out and +@@ -283,45 +283,11 @@ const DockedDash = new Lang.Class({ + this.dash.actor.add_constraint(this.constrainSize); + + this._signalsHandler.add([ +- Main.overview, +- 'item-drag-begin', +- Lang.bind(this, this._onDragStart) +- ], [ +- Main.overview, +- 'item-drag-end', +- Lang.bind(this, this._onDragEnd) +- ], [ +- Main.overview, +- 'item-drag-cancelled', +- Lang.bind(this, this._onDragEnd) +- ], [ + // update when workarea changes, for instance if other extensions modify the struts + //(like moving th panel at the bottom) + global.screen, + 'workareas-changed', + Lang.bind(this, this._resetPosition) +- ], [ +- Main.overview, +- 'showing', +- Lang.bind(this, this._onOverviewShowing) +- ], [ +- Main.overview, +- 'hiding', +- Lang.bind(this, this._onOverviewHiding) +- ], [ +- // Hide on appview +- Main.overview.viewSelector, +- 'page-changed', +- Lang.bind(this, this._pageChanged) +- ], [ +- Main.overview.viewSelector, +- 'page-empty', +- Lang.bind(this, this._onPageEmpty) +- ], [ +- // Ensure the ShowAppsButton status is kept in sync +- Main.overview.viewSelector._showAppsButton, +- 'notify::checked', +- Lang.bind(this, this._syncShowAppsButtonToggled) + ], [ + global.screen, + 'in-fullscreen-changed', +@@ -338,19 +304,57 @@ const DockedDash = new Lang.Class({ + Lang.bind(this, function() { + Main.overview.dashIconSize = this.dash.iconSize; + }) +- ], [ +- // This duplicate the similar signal which is in owerview.js. +- // Being connected and thus executed later this effectively +- // overwrite any attempt to use the size of the default dash +- //which given the customization is usually much smaller. +- // I can't easily disconnect the original signal +- Main.overview._controls.dash, +- 'icon-size-changed', +- Lang.bind(this, function() { +- Main.overview.dashIconSize = this.dash.iconSize; +- }) + ]); + ++ if (!Main.overview.isDummy) { ++ this._signalsHandler.add([ ++ Main.overview, ++ 'item-drag-begin', ++ Lang.bind(this, this._onDragStart) ++ ], [ ++ Main.overview, ++ 'item-drag-end', ++ Lang.bind(this, this._onDragEnd) ++ ], [ ++ Main.overview, ++ 'item-drag-cancelled', ++ Lang.bind(this, this._onDragEnd) ++ ], [ ++ Main.overview, ++ 'showing', ++ Lang.bind(this, this._onOverviewShowing) ++ ], [ ++ Main.overview, ++ 'hiding', ++ Lang.bind(this, this._onOverviewHiding) ++ ], [ ++ // Hide on appview ++ Main.overview.viewSelector, ++ 'page-changed', ++ Lang.bind(this, this._pageChanged) ++ ], [ ++ Main.overview.viewSelector, ++ 'page-empty', ++ Lang.bind(this, this._onPageEmpty) ++ ], [ ++ // Ensure the ShowAppsButton status is kept in sync ++ Main.overview.viewSelector._showAppsButton, ++ 'notify::checked', ++ Lang.bind(this, this._syncShowAppsButtonToggled) ++ ], [ ++ // This duplicate the similar signal which is in owerview.js. ++ // Being connected and thus executed later this effectively ++ // overwrite any attempt to use the size of the default dash ++ //which given the customization is usually much smaller. ++ // I can't easily disconnect the original signal ++ Main.overview._controls.dash, ++ 'icon-size-changed', ++ Lang.bind(this, function() { ++ Main.overview.dashIconSize = this.dash.iconSize; ++ }) ++ ]); ++ } ++ + this._injectionsHandler = new Utils.InjectionsHandler(); + this._themeManager = new Theming.ThemeManager(this._settings, this); + +@@ -385,14 +389,17 @@ const DockedDash = new Lang.Class({ + this._dashSpacer = new OverviewControls.DashSpacer(); + this._dashSpacer.setDashActor(this._box); + +- if (this._position == St.Side.LEFT) +- Main.overview._controls._group.insert_child_at_index(this._dashSpacer, this._rtl ? -1 : 0); // insert on first +- else if (this._position == St.Side.RIGHT) +- Main.overview._controls._group.insert_child_at_index(this._dashSpacer, this._rtl ? 0 : -1); // insert on last +- else if (this._position == St.Side.TOP) +- Main.overview._overview.insert_child_at_index(this._dashSpacer, 0); +- else if (this._position == St.Side.BOTTOM) +- Main.overview._overview.insert_child_at_index(this._dashSpacer, -1); ++ if (!Main.overview.isDummy) { ++ const { _controls, _overview } = Main.overview; ++ if (this._position == St.Side.LEFT) ++ _controls._group.insert_child_at_index(this._dashSpacer, this._rtl ? -1 : 0); // insert on first ++ else if (this._position == St.Side.RIGHT) ++ _controls._group.insert_child_at_index(this._dashSpacer, this._rtl ? 0 : -1); // insert on last ++ else if (this._position == St.Side.TOP) ++ _overview.insert_child_at_index(this._dashSpacer, 0); ++ else if (this._position == St.Side.BOTTOM) ++ _overview.insert_child_at_index(this._dashSpacer, -1); ++ } + + // Add dash container actor and the container to the Chrome. + this.actor.set_child(this._slider.actor); +@@ -427,7 +434,7 @@ const DockedDash = new Lang.Class({ + + // Since Gnome 3.8 dragging an app without having opened the overview before cause the attemp to + //animate a null target since some variables are not initialized when the viewSelector is created +- if (Main.overview.viewSelector._activePage == null) ++ if (!Main.overview.isDummy && Main.overview.viewSelector._activePage == null) + Main.overview.viewSelector._activePage = Main.overview.viewSelector._workspacesPage; + + this._updateVisibilityMode(); +@@ -523,7 +530,8 @@ const DockedDash = new Lang.Class({ + this._settings, + 'changed::show-show-apps-button', + Lang.bind(this, function() { +- if (this._settings.get_boolean('show-show-apps-button')) ++ if (!Main.overview.isDummy && ++ this._settings.get_boolean('show-show-apps-button')) + this.dash.showShowAppsButton(); + else + this.dash.hideShowAppsButton(); +@@ -1753,6 +1761,9 @@ var DockManager = new Lang.Class({ + // set stored icon size to the new dash + Main.overview.dashIconSize = this._allDocks[0].dash.iconSize; + ++ if (Main.overview.isDummy) ++ return; ++ + // Hide usual Dash + Main.overview._controls.dash.actor.hide(); + +@@ -1779,6 +1790,9 @@ var DockManager = new Lang.Class({ + }, + + _restoreDash: function() { ++ if (Main.overview.isDummy) ++ return; ++ + Main.overview._controls.dash.actor.show(); + Main.overview._controls.dash.actor.set_width(-1); //reset default dash size + // This force the recalculation of the icon size +-- +2.25.0 + diff --git a/SOURCES/0001-window-list-Invalid-current-mode-selected-in-Prefere.patch b/SOURCES/0001-window-list-Invalid-current-mode-selected-in-Prefere.patch new file mode 100644 index 0000000..703bf9d --- /dev/null +++ b/SOURCES/0001-window-list-Invalid-current-mode-selected-in-Prefere.patch @@ -0,0 +1,58 @@ +From cd80de739be21f374a732e7cbbf8eeec655b8c2a Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Fri, 17 Apr 2020 09:21:42 +0200 +Subject: [PATCH] window-list: Invalid current mode selected in Preferences + +It seems that gtk+ resets the active radio whenever a new radio button +is added into the group, thus rather restore the current mode after +the group is fully populated. + +https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/119 +--- + extensions/window-list/prefs.js | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/extensions/window-list/prefs.js b/extensions/window-list/prefs.js +index bc1abcd..add134f 100644 +--- a/extensions/window-list/prefs.js ++++ b/extensions/window-list/prefs.js +@@ -49,6 +49,7 @@ class WindowListPrefsWidget extends Gtk.Grid { + }; + + let radio = null; ++ let currentRadio = null; + for (let i = 0; i < modes.length; i++) { + let mode = modes[i]; + let label = modeLabels[mode]; +@@ -57,17 +58,25 @@ class WindowListPrefsWidget extends Gtk.Grid { + continue; + } + +- radio = new Gtk.RadioButton({ active: currentMode == mode, +- label: label, +- group: radio }); ++ radio = new Gtk.RadioButton({ ++ active: !i, ++ label, ++ group: radio, ++ }); + grid.add(radio); + ++ if (currentMode === mode) ++ currentRadio = radio; ++ + radio.connect('toggled', button => { + if (button.active) + this._settings.set_string('grouping-mode', mode); + }); + } + ++ if (currentRadio) ++ currentRadio.active = true; ++ + let check = new Gtk.CheckButton({ label: _("Show on all monitors"), + margin_top: 6 }); + this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT); +-- +2.26.2 + diff --git a/SOURCES/more-classic-classic-mode.patch b/SOURCES/more-classic-classic-mode.patch index fca5599..b9cb728 100644 --- a/SOURCES/more-classic-classic-mode.patch +++ b/SOURCES/more-classic-classic-mode.patch @@ -1,7 +1,7 @@ From 05833ca853e5e661cf43f59734ca0a29219159fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 18 Jul 2019 00:39:49 +0200 -Subject: [PATCH 01/33] apps-menu: Add drop-shadow to application icons +Subject: [PATCH 01/32] apps-menu: Add drop-shadow to application icons ... to make sure they are readable on light backgrounds. @@ -26,13 +26,13 @@ index 49a05c7..860cb77 100644 }; -- -2.21.0 +2.26.2 From 4ace6d5da8e0edc590706af8afb8cfc843a06af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 29 May 2019 10:17:20 +0000 -Subject: [PATCH 02/33] places-menu: Don't hardcode position +Subject: [PATCH 02/32] places-menu: Don't hardcode position The extension currently assumes that we have the "Activities" button at the left of the top bar. This is currently true, not only in the @@ -68,47 +68,13 @@ index 429e81d..cdecb7b 100644 } -- -2.21.0 +2.26.2 -From 829929350bda3a03795c43d303273a7c9ff225b3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Thu, 27 Jun 2019 03:57:53 +0200 -Subject: [PATCH 03/33] apps-menu: Add missing chain-up - -PanelMenu.Button is a bit weird in that it also "contains" its parent -actor. That container is supposed to be destroyed with the button, but -as we currently don't chain up to the parent class' _onDestroy(), we -leave behind an empty container every time the extension is disabled. - -Fix this by adding the missing chain-up. - -https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/75 ---- - extensions/apps-menu/extension.js | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js -index 860cb77..08eda10 100644 ---- a/extensions/apps-menu/extension.js -+++ b/extensions/apps-menu/extension.js -@@ -491,6 +491,8 @@ class ApplicationsButton extends PanelMenu.Button { - } - - _onDestroy() { -+ super._onDestroy(); -+ - Main.overview.disconnect(this._showingId); - Main.overview.disconnect(this._hidingId); - appSys.disconnect(this._installedChangedId); --- -2.21.0 - - -From 83e93a115f7375991893877ea82f2409569fee0f Mon Sep 17 00:00:00 2001 +From 5985dd5d6867a305d80f1e3d8f7f4b22c30702f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 29 May 2019 08:32:03 +0000 -Subject: [PATCH 04/33] apps-menu: Stop taking over Activities button +Subject: [PATCH 03/32] apps-menu: Stop taking over Activities button We don't want the "Activities" button in GNOME Classic, but the current way of handling it is confusing: @@ -132,7 +98,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69 1 file changed, 6 insertions(+), 57 deletions(-) diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js -index 08eda10..9e02946 100644 +index 860cb77..4bde0d5 100644 --- a/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js @@ -30,22 +30,6 @@ const HORIZ_FACTOR = 5; @@ -218,7 +184,7 @@ index 08eda10..9e02946 100644 _createVertSeparator() { let separator = new St.DrawingArea({ style_class: 'calendar-vertical-separator', pseudo_class: 'highlighted' }); -@@ -509,14 +474,6 @@ class ApplicationsButton extends PanelMenu.Button { +@@ -507,14 +472,6 @@ class ApplicationsButton extends PanelMenu.Button { this._desktopTarget.destroy(); } @@ -233,7 +199,7 @@ index 08eda10..9e02946 100644 _onMenuKeyPress(actor, event) { let symbol = event.get_key_symbol(); if (symbol == Clutter.KEY_Left || symbol == Clutter.KEY_Right) { -@@ -651,11 +608,6 @@ class ApplicationsButton extends PanelMenu.Button { +@@ -649,11 +606,6 @@ class ApplicationsButton extends PanelMenu.Button { x_fill: true, y_fill: true, y_align: St.Align.START }); @@ -245,7 +211,7 @@ index 08eda10..9e02946 100644 this.applicationsBox = new St.BoxLayout({ vertical: true }); this.applicationsScrollBox.add_actor(this.applicationsBox); this.categoriesBox = new St.BoxLayout({ vertical: true }); -@@ -760,19 +712,16 @@ class ApplicationsButton extends PanelMenu.Button { +@@ -758,19 +710,16 @@ class ApplicationsButton extends PanelMenu.Button { }; let appsMenuButton; @@ -269,13 +235,13 @@ index 08eda10..9e02946 100644 function init(metadata) { -- -2.21.0 +2.26.2 -From ea66ad17fe7b5d1a8071a6aa693603be5e62ae27 Mon Sep 17 00:00:00 2001 +From 25d6a4dbcd0ecbe5778ee097c681ef871bcd4064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 7 Jun 2019 14:30:16 +0000 -Subject: [PATCH 05/33] apps-menu: Stop hiding the overview when toggled +Subject: [PATCH 04/32] apps-menu: Stop hiding the overview when toggled Now that the extension no longer doubles as the "Activities" button, that behavior is confusing. @@ -286,7 +252,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js -index 9e02946..50fe55a 100644 +index 4bde0d5..c7253fb 100644 --- a/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js @@ -229,12 +229,8 @@ class ApplicationsMenu extends PopupMenu.PopupMenu { @@ -304,13 +270,13 @@ index 9e02946..50fe55a 100644 } }; -- -2.21.0 +2.26.2 -From 8b850a7f9b17cafbd417f597650a2a13cf8cfefa Mon Sep 17 00:00:00 2001 +From b4f735a3b8c1d17a7248f57be3f8fd1837346f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 7 Jun 2019 20:07:19 +0000 -Subject: [PATCH 06/33] apps-menu: Hide overview when launching app +Subject: [PATCH 05/32] apps-menu: Hide overview when launching app Now that we no longer hide the overview when the menu is opened, it is possible to activate menu entries from the overview. Start @@ -323,7 +289,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69 1 file changed, 2 insertions(+) diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js -index 50fe55a..8d59e6d 100644 +index c7253fb..4bf4fc2 100644 --- a/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js @@ -75,6 +75,8 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem { @@ -336,13 +302,13 @@ index 50fe55a..8d59e6d 100644 setActive(active, params) { -- -2.21.0 +2.26.2 -From 9762c3507177fe3a420bb228549aca03757d73c5 Mon Sep 17 00:00:00 2001 +From a890a0b2aad2f4f1ce1638988c6bc34f7751f52b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 29 May 2019 09:44:30 +0000 -Subject: [PATCH 07/33] classic: Disable overview +Subject: [PATCH 06/32] classic: Disable overview The overview is one of the defining features of GNOME 3, and thus almost by definition at odds with the classic session, which @@ -378,13 +344,13 @@ index fdb3762..c1c0544 100644 "right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"] } -- -2.21.0 +2.26.2 -From 1fee42083afafef861fc57e5d886e4e00945a19c Mon Sep 17 00:00:00 2001 +From 53f2eb6a89ae4b75aa604474cf9425d179a57d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 14 May 2019 19:51:22 +0200 -Subject: [PATCH 08/33] window-list: Add window picker button +Subject: [PATCH 07/32] window-list: Add window picker button MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -612,7 +578,7 @@ index f5285cb..91383ab 100644 diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js new file mode 100644 -index 0000000..59875d5 +index 0000000..c134b98 --- /dev/null +++ b/extensions/window-list/windowPicker.js @@ -0,0 +1,260 @@ @@ -792,7 +758,7 @@ index 0000000..59875d5 + }); + + if (!this._modal) { -+ this.hide(); ++ this.actor.hide(); + return false; + } + } else if (this._modal) { @@ -877,13 +843,13 @@ index 0000000..59875d5 + } +}); -- -2.21.0 +2.26.2 -From ea3f6be47066e1e4a2f86824576a17bc09bcd39d Mon Sep 17 00:00:00 2001 +From 05bb3a140706891bd81e368997c4464c309f84cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 29 Jun 2019 02:52:45 +0200 -Subject: [PATCH 09/33] window-list: Fix resetting handler ID +Subject: [PATCH 08/32] window-list: Fix resetting handler ID This is embarrassing, although destroy() is expected to only run once, so the bug shouldn't have an effect in practice. @@ -894,7 +860,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/78 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js -index 59875d5..c8a3dd6 100644 +index c134b98..6c8f5e8 100644 --- a/extensions/window-list/windowPicker.js +++ b/extensions/window-list/windowPicker.js @@ -255,6 +255,6 @@ class WindowPickerToggle extends St.Button { @@ -906,13 +872,13 @@ index 59875d5..c8a3dd6 100644 } }); -- -2.21.0 +2.26.2 -From eaa96905569de6640bd59cb89aa47fcdb8f486c4 Mon Sep 17 00:00:00 2001 +From b77a8ed7be50501f500a13e9c2b838cac2ea86d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 2 Jul 2019 17:39:55 +0200 -Subject: [PATCH 10/33] window-list: Move super-key handling into WindowPicker +Subject: [PATCH 09/32] window-list: Move super-key handling into WindowPicker We have an option to put a window list on each monitor, so we may have more than one window picker toggle. We don't want each of those try to @@ -925,7 +891,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/80 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js -index c8a3dd6..088ebf2 100644 +index 6c8f5e8..c3c8391 100644 --- a/extensions/window-list/windowPicker.js +++ b/extensions/window-list/windowPicker.js @@ -67,6 +67,8 @@ var WindowPicker = class { @@ -1000,13 +966,13 @@ index c8a3dd6..088ebf2 100644 - } }); -- -2.21.0 +2.26.2 -From 381290b9938339768501e34aee6f21d7040e9394 Mon Sep 17 00:00:00 2001 +From 0e53b834147b380fbd155738eb30244d96f18ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 2 Jul 2019 18:12:31 +0200 -Subject: [PATCH 11/33] window-list: Handle closing window picker with Escape +Subject: [PATCH 10/32] window-list: Handle closing window picker with Escape Just like the overview can be closed with Escape, it makes sense to allow the same for the window picker (in addition to pressing super @@ -1018,7 +984,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/80 1 file changed, 18 insertions(+) diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js -index 088ebf2..461a4d1 100644 +index c3c8391..4895ae5 100644 --- a/extensions/window-list/windowPicker.js +++ b/extensions/window-list/windowPicker.js @@ -68,6 +68,7 @@ var WindowPicker = class { @@ -1068,13 +1034,13 @@ index 088ebf2..461a4d1 100644 _updateBackgrounds() { -- -2.21.0 +2.26.2 -From 22a3bb1051ebda5cba050cdc95114673dae7dab8 Mon Sep 17 00:00:00 2001 +From aa92589bb24aa3e354cf7e4f262144de1a9e7c5a Mon Sep 17 00:00:00 2001 From: Jakub Steiner Date: Mon, 15 Jul 2019 23:40:09 +0200 -Subject: [PATCH 12/33] classic: hover state for panel buttons +Subject: [PATCH 11/32] classic: hover state for panel buttons - prelight before active - lighten up slightly, similar to what the default does (inverted) @@ -1116,13 +1082,13 @@ index e8f4803..a231534 100644 .system-status-icon { -- -2.21.0 +2.26.2 -From da9d0ffad1b75413027f95c112be9d6a5e92ba78 Mon Sep 17 00:00:00 2001 +From f11b024ae46c2228cb43f9f4d3455b542ce55f9e Mon Sep 17 00:00:00 2001 From: Jakub Steiner Date: Mon, 15 Jul 2019 23:03:41 +0200 -Subject: [PATCH 13/33] classic: Update window-list styling +Subject: [PATCH 12/32] classic: Update window-list styling Make buttons flatter, rounder to match default styling. @@ -1198,13 +1164,13 @@ index c506bea..cc967e0 100644 + box-shadow: none; } -- -2.21.0 +2.26.2 -From f9268e6d38e174d78a98f1e64734a00917724032 Mon Sep 17 00:00:00 2001 +From 94f82ca2d97583e4dd6ea246b148c008c4de72bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 00:23:13 +0000 -Subject: [PATCH 14/33] window-list: Split out workspaceIndicator +Subject: [PATCH 13/32] window-list: Split out workspaceIndicator The extension has grown unwieldily big, so before starting to improve on the workspace indicator, move it to its own source file. @@ -1372,7 +1338,7 @@ index 5b1f5f5..34d7c3f 100644 if classic_mode_enabled diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js new file mode 100644 -index 0000000..ac4037b +index 0000000..4127672 --- /dev/null +++ b/extensions/window-list/workspaceIndicator.js @@ -0,0 +1,127 @@ @@ -1504,13 +1470,13 @@ index 0000000..ac4037b +}; + -- -2.21.0 +2.26.2 -From aa6079ff69f942420f806523463337fe81b23121 Mon Sep 17 00:00:00 2001 +From 411547ad976c8917c964b58210be04d1f93f54ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 04:54:50 +0200 -Subject: [PATCH 15/33] window-list: Make some properties private +Subject: [PATCH 14/32] window-list: Make some properties private There's no reason why they should be public. @@ -1520,7 +1486,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index ac4037b..cd3e394 100644 +index 4127672..cd8c2d1 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -22,14 +22,14 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button { @@ -1579,13 +1545,13 @@ index ac4037b..cd3e394 100644 _activate(index) { -- -2.21.0 +2.26.2 -From 54f5bf585056267f63e2a28153ae709325afe9ca Mon Sep 17 00:00:00 2001 +From 034582f6e53577ebd32f9152de6ecf290ebb4148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 04:57:39 +0200 -Subject: [PATCH 16/33] window-list: Update workspace names in-place +Subject: [PATCH 15/32] window-list: Update workspace names in-place There's no good reason to rebuild the entire menu on workspace names changes, we can simply update the labels in-place. @@ -1596,7 +1562,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index cd3e394..5157e6e 100644 +index cd8c2d1..8c360be 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -43,7 +43,7 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button { @@ -1624,13 +1590,13 @@ index cd3e394..5157e6e 100644 this.menu.removeAll(); this._workspacesItems = []; -- -2.21.0 +2.26.2 -From a2fb1382b9ac7c50c556c1a41dc19ceca43bd320 Mon Sep 17 00:00:00 2001 +From 99444dff49f34beb957cf6157a2dda0bacb3a09b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 04:59:19 +0200 -Subject: [PATCH 17/33] window-list: Minor cleanup +Subject: [PATCH 16/32] window-list: Minor cleanup Mutter has a dedicated method for getting the index of the active workspace, use that instead of getting first the active workspace @@ -1642,7 +1608,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index 5157e6e..f9778f7 100644 +index 8c360be..9bb137b 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -21,7 +21,7 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button { @@ -1681,13 +1647,13 @@ index 5157e6e..f9778f7 100644 for (let i = 0; i < global.screen.n_workspaces; i++) { let name = Meta.prefs_get_workspace_name(i); -- -2.21.0 +2.26.2 -From fe93812275cc44f01a4c3877fc5efdb9121da78a Mon Sep 17 00:00:00 2001 +From a1d3da2bb958a1927130f7d7e9a7490924a1d5e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 05:11:34 +0200 -Subject: [PATCH 18/33] window-list: Improve workspace label styling +Subject: [PATCH 17/32] window-list: Improve workspace label styling The border currently looks off - it extends all the way vertically and leaves zero spacing to the label horizontally. Fix both issues @@ -1721,7 +1687,7 @@ index 91383ab..bab8f76 100644 .notification { diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index f9778f7..132d621 100644 +index 9bb137b..f7d0733 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -22,12 +22,15 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button { @@ -1746,13 +1712,13 @@ index f9778f7..132d621 100644 this._workspacesItems = []; -- -2.21.0 +2.26.2 -From 2edb23239c7d3c2120d59cfe74cba36674be515f Mon Sep 17 00:00:00 2001 +From 4790242fee236df68f21c9b5b178f0629f33fe4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 05:08:31 +0200 -Subject: [PATCH 19/33] window-list: Refactor workspace signal handlers +Subject: [PATCH 18/32] window-list: Refactor workspace signal handlers We are about to support a separate representation if horizontal workspaces are used. To prepare for that, rename the handlers to @@ -1765,7 +1731,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index 132d621..6352763 100644 +index f7d0733..a4ab011 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -36,9 +36,9 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button { @@ -1811,13 +1777,13 @@ index 132d621..6352763 100644 let current = global.screen.get_active_workspace_index(); let total = global.screen.n_workspaces; -- -2.21.0 +2.26.2 -From 1fa782c8ab1d3e69f99cbe0a68110a557d828c78 Mon Sep 17 00:00:00 2001 +From 8d6b99d0a20ffed77a301d2a92584dac4f6a834d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 02:53:38 +0000 -Subject: [PATCH 20/33] window-list: Support horizontal workspace layout +Subject: [PATCH 19/32] window-list: Support horizontal workspace layout Unlike in GNOME 2, the workspace indicator we display in the window list isn't a workspace switcher, but a menu button that allows switching @@ -1894,7 +1860,7 @@ index bab8f76..ad5978a 100644 font-weight: normal; } diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index 6352763..77acf8a 100644 +index a4ab011..3519497 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -7,6 +7,24 @@ const PopupMenu = imports.ui.popupMenu; @@ -2016,13 +1982,13 @@ index 6352763..77acf8a 100644 if (index >= 0 && index < global.screen.n_workspaces) { let metaWorkspace = global.screen.get_workspace_by_index(index); -- -2.21.0 +2.26.2 -From 8ab04d7d1fe9807cdde949afa743de97539769cc Mon Sep 17 00:00:00 2001 +From 9b481c9ec7acf6bf681b8a4706a611cc63ec8660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 11 Jun 2019 23:01:20 +0000 -Subject: [PATCH 21/33] window-list: Turn workspace thumbs into drop targets +Subject: [PATCH 20/32] window-list: Turn workspace thumbs into drop targets It makes some sense to allow using the workspace indicator for moving windows between workspaces as well as for workspace switching. This @@ -2036,7 +2002,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/74 1 file changed, 27 insertions(+) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index 77acf8a..edf176e 100644 +index 3519497..771ff4e 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -1,6 +1,8 @@ @@ -2081,13 +2047,13 @@ index 77acf8a..edf176e 100644 on_clicked() { -- -2.21.0 +2.26.2 -From a4d0ccc3122891f9e164b2b45c9540dbdebba0de Mon Sep 17 00:00:00 2001 +From f64c11d954309ef9eb286d88794a1738ed157e63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 26 Jun 2019 23:55:58 +0000 -Subject: [PATCH 22/33] window-list: Show previews in workspace switcher +Subject: [PATCH 21/32] window-list: Show previews in workspace switcher Currently the new horizontal workspace switcher only shows a series of buttons, with no indication of the workspaces' contents. Go full GNOME 2 @@ -2141,7 +2107,7 @@ index ad5978a..79d56ba 100644 font-weight: normal; } diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index edf176e..0bcee80 100644 +index 771ff4e..7caad52 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -9,16 +9,130 @@ const PopupMenu = imports.ui.popupMenu; @@ -2328,13 +2294,13 @@ index edf176e..0bcee80 100644 var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button { -- -2.21.0 +2.26.2 -From 73e31ec6a601b2f692cf58b5377a1d92fce8d5ca Mon Sep 17 00:00:00 2001 +From 99380fb1c06f6539c69918fea513e59c327f0035 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 5 Jun 2019 03:31:16 +0000 -Subject: [PATCH 23/33] classic: Add 'horizontal-workspaces' extension +Subject: [PATCH 22/32] classic: Add 'horizontal-workspaces' extension Vertical workspaces are another defining characteristics of GNOME 3, and thus rather un-classic. That switch was driven by the overall @@ -2359,7 +2325,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/72 diff --git a/extensions/horizontal-workspaces/extension.js b/extensions/horizontal-workspaces/extension.js new file mode 100644 -index 0000000..bade48b +index 0000000..c9a3d13 --- /dev/null +++ b/extensions/horizontal-workspaces/extension.js @@ -0,0 +1,38 @@ @@ -2382,7 +2348,7 @@ index 0000000..bade48b + -1); + + ThumbnailsBox.prototype._updateSwitcherVisibility = function() { -+ this.hide(); ++ this.actor.hide(); + }; + } + @@ -2448,13 +2414,13 @@ index fa4aa9c..c1581a5 100644 'launch-new-instance', 'top-icons', -- -2.21.0 +2.26.2 -From 1269e9226cf93903957acc58029f4db3e095d5ca Mon Sep 17 00:00:00 2001 +From 80f75e781e16405ae21fcb3135540c3157cbd1f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 29 Jun 2019 01:24:54 +0200 -Subject: [PATCH 24/33] workspace-indicator: Fix whitespace error +Subject: [PATCH 23/32] workspace-indicator: Fix whitespace error We only want a single space before and after operators, not at least one. Unfortunately eslint only enforces the latter ... @@ -2478,13 +2444,13 @@ index ace1703..f6d9912 100644 metaWorkspace.activate(global.get_current_time()); } -- -2.21.0 +2.26.2 -From fee1399f6862ca99ed063b795fc3014b0d18414f Mon Sep 17 00:00:00 2001 +From a2636036fcb5f662edc520b4c0d51908c46c54f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 9 Jun 2019 22:58:29 +0000 -Subject: [PATCH 25/33] workspace-indicator: Make some properties private +Subject: [PATCH 24/32] workspace-indicator: Make some properties private There's no reason why they should be public. @@ -2575,13 +2541,13 @@ index f6d9912..67dec14 100644 _activate(index) { -- -2.21.0 +2.26.2 -From 9f8beea12da86dfa0540fc022ef36de0fa67a932 Mon Sep 17 00:00:00 2001 +From d23f8f5dc246d9aa572287a78a49b6628bba38fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 9 Jun 2019 23:03:55 +0000 -Subject: [PATCH 26/33] workspace-indicator: Update workspace names in-place +Subject: [PATCH 25/32] workspace-indicator: Update workspace names in-place There's no good reason to rebuild the entire menu on workspace names changes, we can simply update the labels in-place. @@ -2621,13 +2587,13 @@ index 67dec14..3befe14 100644 this._workspaceSection.removeAll(); this._workspacesItems = []; -- -2.21.0 +2.26.2 -From 2d2baa3981a3d061c7b32d57ad07da9a3553dfa3 Mon Sep 17 00:00:00 2001 +From 2c24a724dade18dc55ae9ecf0966e6dc7c3ef067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 9 Jun 2019 23:05:00 +0000 -Subject: [PATCH 27/33] workspace-indicator: Minor cleanup +Subject: [PATCH 26/32] workspace-indicator: Minor cleanup Mutter has a dedicated method for getting the index of the active workspace, use that instead of getting first the active workspace @@ -2679,13 +2645,13 @@ index 3befe14..d341b93 100644 } }; -- -2.21.0 +2.26.2 -From 7c3dfb2c2d5713f84a11d59dba9e34e50a51e204 Mon Sep 17 00:00:00 2001 +From 416785e3be35ce922eabb9d358f13c95542b8f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 9 Jun 2019 23:09:12 +0000 -Subject: [PATCH 28/33] workspace-indicator: Refactor workspace signal handlers +Subject: [PATCH 27/32] workspace-indicator: Refactor workspace signal handlers We are about to support a separate representation if horizontal workspaces are used. To prepare for that, rename the handlers to @@ -2751,13 +2717,13 @@ index d341b93..58ac865 100644 if(workspaceIndex == undefined) { workspaceIndex = this._currentWorkspace; -- -2.21.0 +2.26.2 -From e5b8c870ff750973d615eb801e15b56ad8f614db Mon Sep 17 00:00:00 2001 +From 516d6d3e8e95f672388a0a807913fb116b70b79f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 9 Jun 2019 23:17:35 +0000 -Subject: [PATCH 29/33] workspace-indicator: Minor cleanup +Subject: [PATCH 28/32] workspace-indicator: Minor cleanup Pass the style class at construction time instead of setting it later. @@ -2789,13 +2755,13 @@ index 58ac865..e6fffe4 100644 this._settingsChangedId = this._settings.connect( `changed::${WORKSPACE_KEY}`, -- -2.21.0 +2.26.2 -From cce0e2b739cab74a166cfa75631836a7bfd06429 Mon Sep 17 00:00:00 2001 +From 524166a7d4ece0e86f80190209387cc653c90b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 9 Jun 2019 23:45:24 +0000 -Subject: [PATCH 30/33] workspace-indicator: Support horizontal workspace +Subject: [PATCH 29/32] workspace-indicator: Support horizontal workspace layout Just like we did for the workspace indicator in the window-list, improve @@ -2990,13 +2956,13 @@ index 1271f1c..5118194 100644 + border-left-width: 1px; +} -- -2.21.0 +2.26.2 -From 98df229b8a62e575529ebc28e085df53154ebc42 Mon Sep 17 00:00:00 2001 +From 817f6f2dedc63fdeec2f1fa79c33b427272ddabe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 28 Jun 2019 11:33:16 +0200 -Subject: [PATCH 31/33] workspace-indicator: Show previews in workspace +Subject: [PATCH 30/32] workspace-indicator: Show previews in workspace switcher Currently the new horizontal workspace switcher only shows a series of @@ -3243,13 +3209,13 @@ index 5118194..8601c3e 100644 + border: 2px solid #ccc; +} -- -2.21.0 +2.26.2 -From 9b1fb384f2f46a953c4838991ec58cd3c2872b31 Mon Sep 17 00:00:00 2001 +From c4e44e23e945f299ba75b5509b6bf84fcc95d8bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 6 Sep 2019 20:41:23 +0200 -Subject: [PATCH 32/33] window-list: Exclude DESKTOP windows from window +Subject: [PATCH 31/32] window-list: Exclude DESKTOP windows from window previews While nautilus removed its desktop support a while ago in favor of an @@ -3264,7 +3230,7 @@ https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/93 1 file changed, 1 insertion(+) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js -index 0bcee80..c0dd65d 100644 +index 7caad52..527c201 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -78,6 +78,7 @@ let WindowPreview = GObject.registerClass({ @@ -3276,13 +3242,13 @@ index 0bcee80..c0dd65d 100644 if (!this.visible) -- -2.21.0 +2.26.2 -From 59d4e3377072507f95562c8516913b1d257651c0 Mon Sep 17 00:00:00 2001 +From 0ea05d6ff2c926b4bb3fec4268ae0e84230d3e05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 6 Sep 2019 20:47:56 +0200 -Subject: [PATCH 33/33] workspace-indicator: Exclude DESKTOP windows from +Subject: [PATCH 32/32] workspace-indicator: Exclude DESKTOP windows from window previews While nautilus removed its desktop support a while ago in favor of an @@ -3309,5 +3275,5 @@ index 6b656c8..6b7947d 100644 if (!this.visible) -- -2.21.0 +2.26.2 diff --git a/SOURCES/top-icons-accel-name.patch b/SOURCES/top-icons-accel-name.patch new file mode 100644 index 0000000..653e970 --- /dev/null +++ b/SOURCES/top-icons-accel-name.patch @@ -0,0 +1,459 @@ +From 946db74f6a0c750c950e5da7957480abb7cecfec Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Fri, 16 Nov 2018 23:08:34 +0100 +Subject: [PATCH 1/6] Remove compatibility with older shell versions + +By now this is completely untested code we are somewhat dragging +along. Those versions are better covered by old extension versions, +and the simpler code will make it easier to move forward. +--- + extensions/top-icons/extension.js | 135 ++++-------------------------- + 1 file changed, 16 insertions(+), 119 deletions(-) + +diff --git a/extensions/top-icons/extension.js b/extensions/top-icons/extension.js +index 7312a26..c4c5084 100644 +--- a/extensions/top-icons/extension.js ++++ b/extensions/top-icons/extension.js +@@ -1,69 +1,41 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const Clutter = imports.gi.Clutter; + const Shell = imports.gi.Shell; + const St = imports.gi.St; + const Main = imports.ui.main; +-const GLib = imports.gi.GLib; +-const Lang = imports.lang; +-const Panel = imports.ui.panel; + const PanelMenu = imports.ui.panelMenu; + const Meta = imports.gi.Meta; + const Mainloop = imports.mainloop; +-const NotificationDaemon = imports.ui.notificationDaemon; + const System = imports.system; + +-let trayAddedId = 0; +-let trayRemovedId = 0; +-let getSource = null; + let icons = []; +-let notificationDaemon = null; + let sysTray = null; + + const PANEL_ICON_SIZE = 24; + ++const STANDARD_TRAY_ICON_IMPLEMENTATIONS = [ ++ 'bluetooth-applet', ++ 'gnome-sound-applet', ++ 'nm-applet', ++ 'gnome-power-manager', ++ 'keyboard', ++ 'a11y-keyboard', ++ 'kbd-scrolllock', ++ 'kbd-numlock', ++ 'kbd-capslock', ++ 'ibus-ui-gtk' ++]; ++ + function init() { +- if (Main.legacyTray) { +- notificationDaemon = Main.legacyTray; +- NotificationDaemon.STANDARD_TRAY_ICON_IMPLEMENTATIONS = imports.ui.legacyTray.STANDARD_TRAY_ICON_IMPLEMENTATIONS; +- } +- else if (Main.notificationDaemon._fdoNotificationDaemon && +- Main.notificationDaemon._fdoNotificationDaemon._trayManager) { +- notificationDaemon = Main.notificationDaemon._fdoNotificationDaemon; +- getSource = Lang.bind(notificationDaemon, NotificationDaemon.FdoNotificationDaemon.prototype._getSource); +- } +- else if (Main.notificationDaemon._trayManager) { +- notificationDaemon = Main.notificationDaemon; +- getSource = Lang.bind(notificationDaemon, NotificationDaemon.NotificationDaemon.prototype._getSource); +- } +- else { +- NotificationDaemon.STANDARD_TRAY_ICON_IMPLEMENTATIONS = { +- 'bluetooth-applet': 1, 'gnome-sound-applet': 1, 'nm-applet': 1, +- 'gnome-power-manager': 1, 'keyboard': 1, 'a11y-keyboard': 1, +- 'kbd-scrolllock': 1, 'kbd-numlock': 1, 'kbd-capslock': 1, 'ibus-ui-gtk': 1 +- }; +- } + } + + function enable() { +- if (notificationDaemon) +- GLib.idle_add(GLib.PRIORITY_LOW, moveToTop); +- else +- createTray(); ++ createTray(); + } + +-function createSource (title, pid, ndata, sender, trayIcon) { +- if (trayIcon) { +- onTrayIconAdded(this, trayIcon, title); +- return null; +- } +- +- return getSource(title, pid, ndata, sender, trayIcon); +-}; +- + function onTrayIconAdded(o, icon, role) { + let wmClass = icon.wm_class ? icon.wm_class.toLowerCase() : ''; +- if (NotificationDaemon.STANDARD_TRAY_ICON_IMPLEMENTATIONS[wmClass] !== undefined) ++ if (STANDARD_TRAY_ICON_IMPLEMENTATIONS.includes(wmClass)) + return; + + let buttonBox = new PanelMenu.ButtonBox(); +@@ -145,81 +117,6 @@ function destroyTray() { + System.gc(); // force finalizing tray to unmanage screen + } + +-function moveToTop() { +- notificationDaemon._trayManager.disconnect(notificationDaemon._trayIconAddedId); +- notificationDaemon._trayManager.disconnect(notificationDaemon._trayIconRemovedId); +- trayAddedId = notificationDaemon._trayManager.connect('tray-icon-added', onTrayIconAdded); +- trayRemovedId = notificationDaemon._trayManager.connect('tray-icon-removed', onTrayIconRemoved); +- +- notificationDaemon._getSource = createSource; +- +- let toDestroy = []; +- if (notificationDaemon._sources) { +- for (let i = 0; i < notificationDaemon._sources.length; i++) { +- let source = notificationDaemon._sources[i]; +- if (!source.trayIcon) +- continue; +- let parent = source.trayIcon.get_parent(); +- parent.remove_actor(source.trayIcon); +- onTrayIconAdded(this, source.trayIcon, source.initialTitle); +- toDestroy.push(source); +- } +- } +- else { +- for (let i = 0; i < notificationDaemon._iconBox.get_n_children(); i++) { +- let button = notificationDaemon._iconBox.get_child_at_index(i); +- let icon = button.child; +- button.remove_actor(icon); +- onTrayIconAdded(this, icon, ''); +- toDestroy.push(button); +- } +- } +- +- for (let i = 0; i < toDestroy.length; i++) { +- toDestroy[i].destroy(); +- } +-} +- +-function moveToTray() { +- if (trayAddedId != 0) { +- notificationDaemon._trayManager.disconnect(trayAddedId); +- trayAddedId = 0; +- } +- +- if (trayRemovedId != 0) { +- notificationDaemon._trayManager.disconnect(trayRemovedId); +- trayRemovedId = 0; +- } +- +- notificationDaemon._trayIconAddedId = notificationDaemon._trayManager.connect('tray-icon-added', +- Lang.bind(notificationDaemon, notificationDaemon._onTrayIconAdded)); +- notificationDaemon._trayIconRemovedId = notificationDaemon._trayManager.connect('tray-icon-removed', +- Lang.bind(notificationDaemon, notificationDaemon._onTrayIconRemoved)); +- +- notificationDaemon._getSource = getSource; +- +- for (let i = 0; i < icons.length; i++) { +- let icon = icons[i]; +- let parent = icon.get_parent(); +- if (icon._clicked) { +- icon.disconnect(icon._clicked); +- } +- icon._clicked = undefined; +- if (icon._proxyAlloc) { +- Main.panel._rightBox.disconnect(icon._proxyAlloc); +- } +- icon._clickProxy.destroy(); +- parent.remove_actor(icon); +- parent.destroy(); +- notificationDaemon._onTrayIconAdded(notificationDaemon, icon); +- } +- +- icons = []; +-} +- + function disable() { +- if (notificationDaemon) +- moveToTray(); +- else +- destroyTray(); ++ destroyTray(); + } +-- +2.26.2 + + +From d0f2d28a7dcabe79a538edb946c566c15d7bd9aa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Fri, 15 Feb 2019 03:12:00 +0100 +Subject: [PATCH 2/6] Fix double-destroy error + +A parent will destroy all its children when destroyed, so we don't +need to explicitly destroy the icon as well. In fact, gjs now treats +this as a fatal error. +--- + extensions/top-icons/extension.js | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/extensions/top-icons/extension.js b/extensions/top-icons/extension.js +index c4c5084..6456189 100644 +--- a/extensions/top-icons/extension.js ++++ b/extensions/top-icons/extension.js +@@ -98,7 +98,6 @@ function onTrayIconAdded(o, icon, role) { + function onTrayIconRemoved(o, icon) { + let parent = icon.get_parent(); + parent.destroy(); +- icon.destroy(); + icons.splice(icons.indexOf(icon), 1); + } + +-- +2.26.2 + + +From fda29d0517b56dac3ddfa7a9749a52a40c1bbb6a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Sat, 17 Nov 2018 00:57:53 +0100 +Subject: [PATCH 3/6] Stop using a "click proxy" + +It's a terrible work-around for an issue with status icon support +on wayland[0], which is the cause of crashes now that gjs is much +stricter about accessing already released objects. + +Crashing is worse than the original problem (which will hopefully +soon be fixed anyway), so drop the work-around. + +https://gitlab.gnome.org/GNOME/gnome-shell/issues/191 +--- + extensions/top-icons/extension.js | 38 +++---------------------------- + 1 file changed, 3 insertions(+), 35 deletions(-) + +diff --git a/extensions/top-icons/extension.js b/extensions/top-icons/extension.js +index 6456189..b617284 100644 +--- a/extensions/top-icons/extension.js ++++ b/extensions/top-icons/extension.js +@@ -4,8 +4,6 @@ const Shell = imports.gi.Shell; + const St = imports.gi.St; + const Main = imports.ui.main; + const PanelMenu = imports.ui.panelMenu; +-const Meta = imports.gi.Meta; +-const Mainloop = imports.mainloop; + const System = imports.system; + + let icons = []; +@@ -56,42 +54,12 @@ function onTrayIconAdded(o, icon, role) { + icons.push(icon); + Main.panel._rightBox.insert_child_at_index(box, 0); + +- let clickProxy = new St.Bin({ width: iconSize, height: iconSize }); +- clickProxy.reactive = true; +- Main.uiGroup.add_actor(clickProxy); +- +- icon._proxyAlloc = Main.panel._rightBox.connect('allocation-changed', function() { +- Meta.later_add(Meta.LaterType.BEFORE_REDRAW, function() { +- let [x, y] = icon.get_transformed_position(); +- clickProxy.set_position(x, y); +- }); +- }); +- +- icon.connect("destroy", function() { +- Main.panel._rightBox.disconnect(icon._proxyAlloc); +- clickProxy.destroy(); +- }); +- +- clickProxy.connect('button-release-event', function(actor, event) { ++ icon.connect('button-release-event', function(actor, event) { + icon.click(event); + }); + +- icon._clickProxy = clickProxy; +- +- /* Fixme: HACK */ +- Meta.later_add(Meta.LaterType.BEFORE_REDRAW, function() { +- let [x, y] = icon.get_transformed_position(); +- clickProxy.set_position(x, y); +- return false; +- }); +- let timerId = 0; +- let i = 0; +- timerId = Mainloop.timeout_add(500, function() { +- icon.set_size(icon.width == iconSize ? iconSize - 1 : iconSize, +- icon.width == iconSize ? iconSize - 1 : iconSize); +- i++; +- if (i == 2) +- Mainloop.source_remove(timerId); ++ icon.connect('destroy', function() { ++ box.destroy(); + }); + } + +-- +2.26.2 + + +From 20f4b27ace58d7b6c5df4936c5e5d11d13992fbd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Fri, 15 Feb 2019 17:33:41 +0100 +Subject: [PATCH 4/6] Slightly improve integration with top bar + +It is lost in the mists of time why we are using a base class and +meddle around with its hierarchy, instead of using the preferred +API for top bar items. + +While at it, also support activation by keynav. +--- + extensions/top-icons/extension.js | 24 +++++++++++------------- + 1 file changed, 11 insertions(+), 13 deletions(-) + +diff --git a/extensions/top-icons/extension.js b/extensions/top-icons/extension.js +index b617284..59e91d5 100644 +--- a/extensions/top-icons/extension.js ++++ b/extensions/top-icons/extension.js +@@ -31,36 +31,34 @@ function enable() { + createTray(); + } + +-function onTrayIconAdded(o, icon, role) { ++function onTrayIconAdded(o, icon) { + let wmClass = icon.wm_class ? icon.wm_class.toLowerCase() : ''; + if (STANDARD_TRAY_ICON_IMPLEMENTATIONS.includes(wmClass)) + return; + +- let buttonBox = new PanelMenu.ButtonBox(); +- let box = buttonBox.actor; +- let parent = box.get_parent(); ++ let button = new PanelMenu.Button(0.5, null, true); + + let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; + let iconSize = PANEL_ICON_SIZE * scaleFactor; + + icon.set_size(iconSize, iconSize); +- box.add_actor(icon); +- +- icon.reactive = true; +- +- if (parent) +- parent.remove_actor(box); ++ button.actor.add_actor(icon); + + icons.push(icon); +- Main.panel._rightBox.insert_child_at_index(box, 0); + +- icon.connect('button-release-event', function(actor, event) { ++ button.actor.connect('button-release-event', function(actor, event) { ++ icon.click(event); ++ }); ++ button.actor.connect('key-press-event', function(actor, event) { + icon.click(event); + }); + + icon.connect('destroy', function() { +- box.destroy(); ++ button.destroy(); + }); ++ ++ let role = wmClass || `${icon}`; ++ Main.panel.addToStatusArea(role, button); + } + + function onTrayIconRemoved(o, icon) { +-- +2.26.2 + + +From 866cbb3a7d2226b93d1d682db682f8f8ef247ddf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Fri, 31 May 2019 18:57:42 +0200 +Subject: [PATCH 5/6] Fix icon sizing issue + +PanelMenu.Button is a custom actor that expands its child to the +available height and adds horizontal padding. So in order to not +distort the icon, don't add it directly but add an intermediate +container for alignment. + +Also lower the icon size to the standard top bar 16px. +--- + extensions/top-icons/extension.js | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/extensions/top-icons/extension.js b/extensions/top-icons/extension.js +index 59e91d5..f0da96f 100644 +--- a/extensions/top-icons/extension.js ++++ b/extensions/top-icons/extension.js +@@ -1,5 +1,6 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + ++const Clutter = imports.gi.Clutter; + const Shell = imports.gi.Shell; + const St = imports.gi.St; + const Main = imports.ui.main; +@@ -9,7 +10,7 @@ const System = imports.system; + let icons = []; + let sysTray = null; + +-const PANEL_ICON_SIZE = 24; ++const PANEL_ICON_SIZE = 16; + + const STANDARD_TRAY_ICON_IMPLEMENTATIONS = [ + 'bluetooth-applet', +@@ -42,7 +43,14 @@ function onTrayIconAdded(o, icon) { + let iconSize = PANEL_ICON_SIZE * scaleFactor; + + icon.set_size(iconSize, iconSize); +- button.actor.add_actor(icon); ++ icon.set_x_align(Clutter.ActorAlign.CENTER); ++ icon.set_y_align(Clutter.ActorAlign.CENTER); ++ ++ let iconBin = new St.Widget({ ++ layout_manager: new Clutter.BinLayout(), ++ }); ++ iconBin.add_actor(icon); ++ button.actor.add_actor(iconBin); + + icons.push(icon); + +-- +2.26.2 + + +From 4e2ac2ff096265db9916d323255f7d57ab742d6e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Wed, 27 May 2020 22:01:06 +0200 +Subject: [PATCH 6/6] Set icons' accessible name + +Status icons aren't great as far as accessibility is concerned (well, +they aren't great, full stop). But we can at least do slightly better +than stuffing an anonymous actor in the top bar by using the icon's +title for the accessible name. +--- + extensions/top-icons/extension.js | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/extensions/top-icons/extension.js b/extensions/top-icons/extension.js +index f0da96f..3611f59 100644 +--- a/extensions/top-icons/extension.js ++++ b/extensions/top-icons/extension.js +@@ -1,6 +1,7 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + + const Clutter = imports.gi.Clutter; ++const GObject = imports.gi.GObject; + const Shell = imports.gi.Shell; + const St = imports.gi.St; + const Main = imports.ui.main; +@@ -45,6 +46,9 @@ function onTrayIconAdded(o, icon) { + icon.set_size(iconSize, iconSize); + icon.set_x_align(Clutter.ActorAlign.CENTER); + icon.set_y_align(Clutter.ActorAlign.CENTER); ++ icon.bind_property('title', ++ button.actor, 'accessible-name', ++ GObject.BindingFlags.SYNC_CREATE); + + let iconBin = new St.Widget({ + layout_manager: new Clutter.BinLayout(), +-- +2.26.2 + diff --git a/SPECS/gnome-shell-extensions.spec b/SPECS/gnome-shell-extensions.spec index a7e66a1..d63669d 100644 --- a/SPECS/gnome-shell-extensions.spec +++ b/SPECS/gnome-shell-extensions.spec @@ -6,7 +6,7 @@ Name: gnome-shell-extensions Version: 3.28.1 -Release: 12%{?dist} +Release: 14%{?dist} Summary: Modify and extend GNOME Shell functionality and behavior Group: User Interface/Desktops @@ -37,7 +37,9 @@ Patch12: 0001-window-list-drop-button-grab-when-leaving-button.patch Patch13: 0001-Add-extra-osk-keys-extension.patch Patch14: more-classic-classic-mode.patch Patch15: 0001-window-list-workspace-indicator-Set-reactiveness-of-.patch -Patch16: 0001-A-couple-of-more-backport-fixes.patch +Patch16: 0001-dashToDock-Handle-no-overview-case.patch +Patch17: 0001-window-list-Invalid-current-mode-selected-in-Prefere.patch +Patch18: top-icons-accel-name.patch Patch99: 0001-Revert-data-Remove-nautilus-classic.patch @@ -562,9 +564,21 @@ fi %changelog -* Wed Jul 20 2020 Florian Müllner - 3.28.1-12 +* Wed Jun 17 2020 Florian Müllner - 3.28.1-14 - Fix workspace switch in window-list outside GNOME Classic - Resolves: #1858717 + Resolves: #1848058 + +* Tue May 26 2020 Florian Müllner - 3.28.1-13 +- Adjust dash-to-dock for classic backports + Resolves: #1805920 +- Fix inconsistent state in window-list prefs dialog + Resolves: #1613835 +- Add accessible name to status icons + Resolves: #1600999 + +* Mon Apr 20 2020 Florian Müllner - 3.28.1-12 +- Drop faulty patch from backport + Resolves: #1782102 * Fri Dec 06 2019 Jonas Ådahl - 3.28.1-11 - A couple of fixes to the classic backports