From 27629185ec44b8eb92219ebecb319ced24d01b8d Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 8 Nov 2022 01:45:14 -0500 Subject: [PATCH] import gnome-shell-extensions-3.32.1-29.el8 --- ...s-Don-t-move-windows-already-on-all-.patch | 33 +++++ SOURCES/window-list-touch.patch | 126 ++++++++++++++++++ SPECS/gnome-shell-extensions.spec | 12 +- 3 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0001-auto-move-windows-Don-t-move-windows-already-on-all-.patch create mode 100644 SOURCES/window-list-touch.patch diff --git a/SOURCES/0001-auto-move-windows-Don-t-move-windows-already-on-all-.patch b/SOURCES/0001-auto-move-windows-Don-t-move-windows-already-on-all-.patch new file mode 100644 index 0000000..665227c --- /dev/null +++ b/SOURCES/0001-auto-move-windows-Don-t-move-windows-already-on-all-.patch @@ -0,0 +1,33 @@ +From 8a5e793b3d984f3acc378cf8914410311e9dde0e Mon Sep 17 00:00:00 2001 +From: Daniel van Vugt +Date: Thu, 28 Jan 2021 16:33:50 +0800 +Subject: [PATCH] auto-move-windows: Don't move windows already on all + workspaces + +This fixes a particular case of mutter#992. + +Although gnome-shell will also be softened to not crash in future, it's +also a good idea for the extension to explicitly decide how it wants to +handle windows that are already on all workspaces. + +Part-of: +--- + extensions/auto-move-windows/extension.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js +index b9bc3a0..3859809 100644 +--- a/extensions/auto-move-windows/extension.js ++++ b/extensions/auto-move-windows/extension.js +@@ -72,7 +72,7 @@ class WindowMover { + } + + _moveWindow(window, workspaceNum) { +- if (window.skip_taskbar) ++ if (window.skip_taskbar || window.is_on_all_workspaces()) + return; + + // ensure we have the required number of workspaces +-- +2.37.1 + diff --git a/SOURCES/window-list-touch.patch b/SOURCES/window-list-touch.patch new file mode 100644 index 0000000..b47741c --- /dev/null +++ b/SOURCES/window-list-touch.patch @@ -0,0 +1,126 @@ +From f8ec838485ae81cf2e8ab2b899ad4154c7c06fbd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 21 Apr 2022 16:34:50 +0200 +Subject: [PATCH 1/2] window-list: Fix primary button action on touch + +If a click event was triggered via touch rather than a pointer +device, the button parameter is 0 rather than a mouse button +number. + +Account for that to make sure that touch events are not misinterpreted +as right clicks. + +https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146 + +Part-of: +--- + extensions/window-list/extension.js | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js +index 1f854aa2..fedc4195 100644 +--- a/extensions/window-list/extension.js ++++ b/extensions/window-list/extension.js +@@ -358,7 +358,7 @@ class WindowButton extends BaseButton { + return; + } + +- if (button == 1) ++ if (!button || button === 1) + _minimizeOrActivateWindow(this.metaWindow); + else + _openMenu(this._contextMenu); +@@ -601,7 +601,7 @@ class AppButton extends BaseButton { + if (contextMenuWasOpen) + this._contextMenu.close(); + +- if (button == 1) { ++ if (!button || button === 1) { + if (menuWasOpen) + return; + +-- +2.36.1 + + +From d3cf07f8065935736e8a79d06ec79c971c453453 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 5 May 2022 20:55:20 +0200 +Subject: [PATCH 2/2] window-list: Open menu on long press + +Right-click isn't available on touch, so implement long-press as +an alternative. + +https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146 + +Part-of: +--- + extensions/window-list/extension.js | 45 +++++++++++++++++++++++++++++ + 1 file changed, 45 insertions(+) + +diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js +index fedc4195..0baaeecb 100644 +--- a/extensions/window-list/extension.js ++++ b/extensions/window-list/extension.js +@@ -229,6 +229,9 @@ class BaseButton { + this.actor.connect('clicked', this._onClicked.bind(this)); + this.actor.connect('destroy', this._onDestroy.bind(this)); + this.actor.connect('popup-menu', this._onPopupMenu.bind(this)); ++ this.actor.connect('button-press-event', this._onButtonPress.bind(this)); ++ this.actor.connect('button-release-event', this._onButtonRelease.bind(this)); ++ this.actor.connect('touch-event', this._onTouch.bind(this)); + + this._contextMenuManager = new PopupMenu.PopupMenuManager(this); + +@@ -250,6 +253,48 @@ class BaseButton { + return this.actor.has_style_class_name('focused'); + } + ++ _setLongPressTimeout() { ++ if (this._longPressTimeoutId) ++ return; ++ ++ const { longPressDuration } = Clutter.Settings.get_default(); ++ this._longPressTimeoutId = ++ GLib.timeout_add(GLib.PRIORITY_DEFAULT, longPressDuration, () => { ++ delete this._longPressTimeoutId; ++ ++ if (this._canOpenPopupMenu() && !this._contextMenu.isOpen) ++ _openMenu(this._contextMenu); ++ return GLib.SOURCE_REMOVE; ++ }); ++ } ++ ++ _removeLongPressTimeout() { ++ if (!this._longPressTimeoutId) ++ return; ++ GLib.source_remove(this._longPressTimeoutId); ++ delete this._longPressTimeoutId; ++ } ++ ++ _onButtonPress(button, event) { ++ if (event.get_button() === 1) ++ this._setLongPressTimeout(); ++ return Clutter.EVENT_PROPAGATE; ++ } ++ ++ _onButtonRelease() { ++ this._removeLongPressTimeout(); ++ return Clutter.EVENT_PROPAGATE; ++ } ++ ++ _onTouch(event) { ++ const type = event.get_type(); ++ if (type === Clutter.EventType.TOUCH_BEGIN) ++ this._setLongPressTimeout(); ++ else if (type === Clutter.EventType.TOUCH_END) ++ this._removeLongPressTimeout(); ++ return Clutter.EVENT_PROPAGATE; ++ } ++ + activate() { + if (this.active) + return; +-- +2.36.1 + diff --git a/SPECS/gnome-shell-extensions.spec b/SPECS/gnome-shell-extensions.spec index 8d45c80..7e70373 100644 --- a/SPECS/gnome-shell-extensions.spec +++ b/SPECS/gnome-shell-extensions.spec @@ -6,7 +6,7 @@ Name: gnome-shell-extensions Version: 3.32.1 -Release: 27%{?dist} +Release: 29%{?dist} Summary: Modify and extend GNOME Shell functionality and behavior Group: User Interface/Desktops @@ -49,6 +49,8 @@ Patch0020: 0001-heads-up-display-Add-extension-for-showing-persisten.pat Patch0021: 0001-desktop-icons-Fix-stuck-grab-issue-with-rubber-bandi.patch Patch0022: 0001-gesture-inhibitor-Put-a-foot-down-with-self-enabling.patch Patch0023: 0001-desktop-icons-Use-a-single-unique-name-to-access-nau.patch +Patch0024: window-list-touch.patch +Patch0025: 0001-auto-move-windows-Don-t-move-windows-already-on-all-.patch %description GNOME Shell Extensions is a collection of extensions providing additional and @@ -547,6 +549,14 @@ cp $RPM_SOURCE_DIR/gnome-classic.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions %changelog +* Mon Aug 29 2022 Jonas Ådahl - 3.32.1-29 +- Avoid invalid window management in auto-move-windows + Resolves: #2089311 + +* Wed Jun 22 2022 Florian Müllner - 3.32.1-28 +- Improve window-list on touch + Resolves: #2050000 + * Tue Dec 14 2021 Florian Müllner - 3.32.1-27 - Keep classification banners on login/lock screen Resolves: #1751336