import gnome-shell-extensions-40.4-7.el9
This commit is contained in:
parent
bb2ef745cb
commit
1f28bb912b
438
SOURCES/0001-Add-gesture-inhibitor-extension.patch
Normal file
438
SOURCES/0001-Add-gesture-inhibitor-extension.patch
Normal file
@ -0,0 +1,438 @@
|
||||
From e27d37b9efed5f1266c6b27520a4698e9eb9d453 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Thu, 28 Jan 2021 00:06:12 +0100
|
||||
Subject: [PATCH 1/5] Add gesture-inhibitor extension
|
||||
|
||||
This extension may disable default GNOME Shell gestures.
|
||||
---
|
||||
extensions/gesture-inhibitor/extension.js | 75 +++++++++++++++++++
|
||||
extensions/gesture-inhibitor/meson.build | 8 ++
|
||||
extensions/gesture-inhibitor/metadata.json.in | 12 +++
|
||||
...l.extensions.gesture-inhibitor.gschema.xml | 25 +++++++
|
||||
extensions/gesture-inhibitor/stylesheet.css | 1 +
|
||||
meson.build | 1 +
|
||||
6 files changed, 122 insertions(+)
|
||||
create mode 100644 extensions/gesture-inhibitor/extension.js
|
||||
create mode 100644 extensions/gesture-inhibitor/meson.build
|
||||
create mode 100644 extensions/gesture-inhibitor/metadata.json.in
|
||||
create mode 100644 extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml
|
||||
create mode 100644 extensions/gesture-inhibitor/stylesheet.css
|
||||
|
||||
diff --git a/extensions/gesture-inhibitor/extension.js b/extensions/gesture-inhibitor/extension.js
|
||||
new file mode 100644
|
||||
index 00000000..e74ede2f
|
||||
--- /dev/null
|
||||
+++ b/extensions/gesture-inhibitor/extension.js
|
||||
@@ -0,0 +1,75 @@
|
||||
+/* extension.js
|
||||
+ *
|
||||
+ * This program is free software: you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation, either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+ *
|
||||
+ * SPDX-License-Identifier: GPL-2.0-or-later
|
||||
+ */
|
||||
+
|
||||
+/* exported init */
|
||||
+
|
||||
+const Clutter = imports.gi.Clutter;
|
||||
+const ExtensionUtils = imports.misc.extensionUtils;
|
||||
+const Me = ExtensionUtils.getCurrentExtension();
|
||||
+const ViewSelector = imports.ui.viewSelector;
|
||||
+const EdgeDragAction = imports.ui.edgeDragAction;
|
||||
+const WindowManager = imports.ui.windowManager;
|
||||
+const St = imports.gi.St;
|
||||
+const Gio = imports.gi.Gio;
|
||||
+
|
||||
+class Extension {
|
||||
+ constructor() {
|
||||
+ this._settings = ExtensionUtils.getSettings();
|
||||
+ let actions = global.stage.get_actions();
|
||||
+
|
||||
+ actions.forEach(a => {
|
||||
+ if (a instanceof ViewSelector.ShowOverviewAction)
|
||||
+ this._showOverview = a;
|
||||
+ else if (a instanceof WindowManager.AppSwitchAction)
|
||||
+ this._appSwitch = a;
|
||||
+ else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
+ a._side == St.Side.BOTTOM)
|
||||
+ this._showOsk = a;
|
||||
+ else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
+ a._side == St.Side.TOP)
|
||||
+ this._unfullscreen = a;
|
||||
+ else if (a instanceof EdgeDragAction.EdgeDragAction)
|
||||
+ this._showAppGrid = a;
|
||||
+ });
|
||||
+
|
||||
+ this._map = [
|
||||
+ { setting: 'overview', action: this._showOverview },
|
||||
+ { setting: 'app-switch', action: this._appSwitch },
|
||||
+ { setting: 'show-osk', action: this._showOsk },
|
||||
+ { setting: 'unfullscreen', action: this._unfullscreen },
|
||||
+ { setting: 'show-app-grid', action: this._showAppGrid }
|
||||
+ ];
|
||||
+ }
|
||||
+
|
||||
+ enable() {
|
||||
+ this._map.forEach(m => {
|
||||
+ this._settings.bind(m.setting, m.action, 'enabled',
|
||||
+ Gio.SettingsBindFlags.DEFAULT);
|
||||
+ });
|
||||
+ }
|
||||
+
|
||||
+ disable() {
|
||||
+ this._map.forEach(m => {
|
||||
+ m.action.enabled = true;
|
||||
+ });
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+function init() {
|
||||
+ return new Extension();
|
||||
+}
|
||||
diff --git a/extensions/gesture-inhibitor/meson.build b/extensions/gesture-inhibitor/meson.build
|
||||
new file mode 100644
|
||||
index 00000000..fdad5cc8
|
||||
--- /dev/null
|
||||
+++ b/extensions/gesture-inhibitor/meson.build
|
||||
@@ -0,0 +1,8 @@
|
||||
+extension_data += configure_file(
|
||||
+ input: metadata_name + '.in',
|
||||
+ output: metadata_name,
|
||||
+ configuration: metadata_conf
|
||||
+)
|
||||
+
|
||||
+# extension_sources += files('prefs.js')
|
||||
+extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
diff --git a/extensions/gesture-inhibitor/metadata.json.in b/extensions/gesture-inhibitor/metadata.json.in
|
||||
new file mode 100644
|
||||
index 00000000..37d6a117
|
||||
--- /dev/null
|
||||
+++ b/extensions/gesture-inhibitor/metadata.json.in
|
||||
@@ -0,0 +1,12 @@
|
||||
+{
|
||||
+ "uuid": "@uuid@",
|
||||
+ "extension-id": "@extension_id@",
|
||||
+ "settings-schema": "@gschemaname@",
|
||||
+ "gettext-domain": "@gettext_domain@",
|
||||
+ "name": "Gesture Inhibitor",
|
||||
+ "description": "Makes touchscreen gestures optional.",
|
||||
+ "shell-version": [ "@shell_current@" ],
|
||||
+ "original-authors": [ "cgarnach@redhat.com" ],
|
||||
+ "url": "@url@"
|
||||
+}
|
||||
+
|
||||
diff --git a/extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml b/extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml
|
||||
new file mode 100644
|
||||
index 00000000..1d67dcc0
|
||||
--- /dev/null
|
||||
+++ b/extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml
|
||||
@@ -0,0 +1,25 @@
|
||||
+<schemalist>
|
||||
+ <schema id="org.gnome.shell.extensions.gesture-inhibitor" path="/org/gnome/shell/extensions/gesture-inhibitor/">
|
||||
+ <key name="show-app-grid" type="b">
|
||||
+ <default>true</default>
|
||||
+ <summary>Show app grid gesture</summary>
|
||||
+ </key>
|
||||
+ <key name="show-osk" type="b">
|
||||
+ <default>true</default>
|
||||
+ <summary>Show OSK gesture</summary>
|
||||
+ </key>
|
||||
+ <key name="overview" type="b">
|
||||
+ <default>true</default>
|
||||
+ <summary>Show Overview gesture</summary>
|
||||
+ </key>
|
||||
+ <key name="app-switch" type="b">
|
||||
+ <default>true</default>
|
||||
+ <summary>Application switch gesture</summary>
|
||||
+ </key>
|
||||
+ <key name="unfullscreen" type="b">
|
||||
+ <default>true</default>
|
||||
+ <summary>Unfullscreen gesture</summary>
|
||||
+ </key>
|
||||
+ </schema>
|
||||
+</schemalist>
|
||||
+
|
||||
diff --git a/extensions/gesture-inhibitor/stylesheet.css b/extensions/gesture-inhibitor/stylesheet.css
|
||||
new file mode 100644
|
||||
index 00000000..37b93f21
|
||||
--- /dev/null
|
||||
+++ b/extensions/gesture-inhibitor/stylesheet.css
|
||||
@@ -0,0 +1 @@
|
||||
+/* Add your custom extension styling here */
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 78dee5b8..1bbda801 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -47,6 +47,7 @@ all_extensions = default_extensions
|
||||
all_extensions += [
|
||||
'auto-move-windows',
|
||||
'dash-to-dock',
|
||||
+ 'gesture-inhibitor',
|
||||
'native-window-placement',
|
||||
'panel-favorites',
|
||||
'systemMonitor',
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
||||
From 40604aa25af5a12c976b0ccdbd872bf48c49fdcf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 20 Oct 2021 19:48:46 +0200
|
||||
Subject: [PATCH 2/5] gesture-inhibitor: Fix up indentation
|
||||
|
||||
---
|
||||
extensions/gesture-inhibitor/extension.js | 59 +++++++++++------------
|
||||
1 file changed, 29 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/extensions/gesture-inhibitor/extension.js b/extensions/gesture-inhibitor/extension.js
|
||||
index e74ede2f..734d61cc 100644
|
||||
--- a/extensions/gesture-inhibitor/extension.js
|
||||
+++ b/extensions/gesture-inhibitor/extension.js
|
||||
@@ -29,44 +29,43 @@ const Gio = imports.gi.Gio;
|
||||
|
||||
class Extension {
|
||||
constructor() {
|
||||
- this._settings = ExtensionUtils.getSettings();
|
||||
- let actions = global.stage.get_actions();
|
||||
+ this._settings = ExtensionUtils.getSettings();
|
||||
+ let actions = global.stage.get_actions();
|
||||
|
||||
- actions.forEach(a => {
|
||||
- if (a instanceof ViewSelector.ShowOverviewAction)
|
||||
- this._showOverview = a;
|
||||
- else if (a instanceof WindowManager.AppSwitchAction)
|
||||
- this._appSwitch = a;
|
||||
- else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
- a._side == St.Side.BOTTOM)
|
||||
- this._showOsk = a;
|
||||
- else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
- a._side == St.Side.TOP)
|
||||
- this._unfullscreen = a;
|
||||
- else if (a instanceof EdgeDragAction.EdgeDragAction)
|
||||
- this._showAppGrid = a;
|
||||
- });
|
||||
+ actions.forEach(a => {
|
||||
+ if (a instanceof ViewSelector.ShowOverviewAction)
|
||||
+ this._showOverview = a;
|
||||
+ else if (a instanceof WindowManager.AppSwitchAction)
|
||||
+ this._appSwitch = a;
|
||||
+ else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
+ a._side == St.Side.BOTTOM)
|
||||
+ this._showOsk = a;
|
||||
+ else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
+ a._side == St.Side.TOP)
|
||||
+ this._unfullscreen = a;
|
||||
+ else if (a instanceof EdgeDragAction.EdgeDragAction)
|
||||
+ this._showAppGrid = a;
|
||||
+ });
|
||||
|
||||
- this._map = [
|
||||
- { setting: 'overview', action: this._showOverview },
|
||||
- { setting: 'app-switch', action: this._appSwitch },
|
||||
- { setting: 'show-osk', action: this._showOsk },
|
||||
- { setting: 'unfullscreen', action: this._unfullscreen },
|
||||
- { setting: 'show-app-grid', action: this._showAppGrid }
|
||||
- ];
|
||||
+ this._map = [
|
||||
+ { setting: 'overview', action: this._showOverview },
|
||||
+ { setting: 'app-switch', action: this._appSwitch },
|
||||
+ { setting: 'show-osk', action: this._showOsk },
|
||||
+ { setting: 'unfullscreen', action: this._unfullscreen },
|
||||
+ { setting: 'show-app-grid', action: this._showAppGrid }
|
||||
+ ];
|
||||
}
|
||||
|
||||
enable() {
|
||||
- this._map.forEach(m => {
|
||||
- this._settings.bind(m.setting, m.action, 'enabled',
|
||||
- Gio.SettingsBindFlags.DEFAULT);
|
||||
- });
|
||||
+ this._map.forEach(m => {
|
||||
+ this._settings.bind(m.setting, m.action, 'enabled',
|
||||
+ Gio.SettingsBindFlags.DEFAULT);
|
||||
+ });
|
||||
}
|
||||
|
||||
disable() {
|
||||
- this._map.forEach(m => {
|
||||
- m.action.enabled = true;
|
||||
- });
|
||||
+ this._map.forEach(
|
||||
+ m => (m.action.enabled = true));
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
||||
From 57d53126e322b50f31de169f49bae6e3e01cca21 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 20 Oct 2021 19:47:05 +0200
|
||||
Subject: [PATCH 3/5] gesture-inhibitor: Adjust for GNOME 40 changes
|
||||
|
||||
---
|
||||
extensions/gesture-inhibitor/extension.js | 11 +++--------
|
||||
...ome.shell.extensions.gesture-inhibitor.gschema.xml | 4 ----
|
||||
2 files changed, 3 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/extensions/gesture-inhibitor/extension.js b/extensions/gesture-inhibitor/extension.js
|
||||
index 734d61cc..13586108 100644
|
||||
--- a/extensions/gesture-inhibitor/extension.js
|
||||
+++ b/extensions/gesture-inhibitor/extension.js
|
||||
@@ -21,8 +21,8 @@
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
-const ViewSelector = imports.ui.viewSelector;
|
||||
const EdgeDragAction = imports.ui.edgeDragAction;
|
||||
+const Main = imports.ui.main;
|
||||
const WindowManager = imports.ui.windowManager;
|
||||
const St = imports.gi.St;
|
||||
const Gio = imports.gi.Gio;
|
||||
@@ -33,9 +33,7 @@ class Extension {
|
||||
let actions = global.stage.get_actions();
|
||||
|
||||
actions.forEach(a => {
|
||||
- if (a instanceof ViewSelector.ShowOverviewAction)
|
||||
- this._showOverview = a;
|
||||
- else if (a instanceof WindowManager.AppSwitchAction)
|
||||
+ if (a instanceof WindowManager.AppSwitchAction)
|
||||
this._appSwitch = a;
|
||||
else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
a._side == St.Side.BOTTOM)
|
||||
@@ -43,16 +41,13 @@ class Extension {
|
||||
else if (a instanceof EdgeDragAction.EdgeDragAction &&
|
||||
a._side == St.Side.TOP)
|
||||
this._unfullscreen = a;
|
||||
- else if (a instanceof EdgeDragAction.EdgeDragAction)
|
||||
- this._showAppGrid = a;
|
||||
});
|
||||
|
||||
this._map = [
|
||||
- { setting: 'overview', action: this._showOverview },
|
||||
+ { setting: 'overview', action: Main.overview._swipeTracker },
|
||||
{ setting: 'app-switch', action: this._appSwitch },
|
||||
{ setting: 'show-osk', action: this._showOsk },
|
||||
{ setting: 'unfullscreen', action: this._unfullscreen },
|
||||
- { setting: 'show-app-grid', action: this._showAppGrid }
|
||||
];
|
||||
}
|
||||
|
||||
diff --git a/extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml b/extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml
|
||||
index 1d67dcc0..4bdf9260 100644
|
||||
--- a/extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml
|
||||
+++ b/extensions/gesture-inhibitor/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml
|
||||
@@ -1,9 +1,5 @@
|
||||
<schemalist>
|
||||
<schema id="org.gnome.shell.extensions.gesture-inhibitor" path="/org/gnome/shell/extensions/gesture-inhibitor/">
|
||||
- <key name="show-app-grid" type="b">
|
||||
- <default>true</default>
|
||||
- <summary>Show app grid gesture</summary>
|
||||
- </key>
|
||||
<key name="show-osk" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show OSK gesture</summary>
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
||||
From a771e6511ea8c9e4144a2417a63029524ae7cfb1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 18 Nov 2021 15:54:23 +0100
|
||||
Subject: [PATCH 4/5] gesture-inhibitor: Unbind setting on disable
|
||||
|
||||
---
|
||||
extensions/gesture-inhibitor/extension.js | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/extensions/gesture-inhibitor/extension.js b/extensions/gesture-inhibitor/extension.js
|
||||
index 13586108..02b34ec4 100644
|
||||
--- a/extensions/gesture-inhibitor/extension.js
|
||||
+++ b/extensions/gesture-inhibitor/extension.js
|
||||
@@ -59,8 +59,10 @@ class Extension {
|
||||
}
|
||||
|
||||
disable() {
|
||||
- this._map.forEach(
|
||||
- m => (m.action.enabled = true));
|
||||
+ this._map.forEach(m => {
|
||||
+ Gio.Settings.unbind(m.action, 'enabled');
|
||||
+ m.action.enabled = true;
|
||||
+ });
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
||||
From b34018078a87bd52344b3a7cdef5eae1ac271d89 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 18 Nov 2021 16:06:09 +0100
|
||||
Subject: [PATCH 5/5] gesture-inhibitor: Override :enabled property
|
||||
|
||||
Otherwise gnome-shell can re-enable an inhibited gesture behind our
|
||||
back.
|
||||
---
|
||||
extensions/gesture-inhibitor/extension.js | 23 ++++++++++++++++++++++-
|
||||
1 file changed, 22 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/extensions/gesture-inhibitor/extension.js b/extensions/gesture-inhibitor/extension.js
|
||||
index 02b34ec4..fb8a6dc0 100644
|
||||
--- a/extensions/gesture-inhibitor/extension.js
|
||||
+++ b/extensions/gesture-inhibitor/extension.js
|
||||
@@ -49,18 +49,39 @@ class Extension {
|
||||
{ setting: 'show-osk', action: this._showOsk },
|
||||
{ setting: 'unfullscreen', action: this._unfullscreen },
|
||||
];
|
||||
+
|
||||
+ this._enabledDesc = Object.getOwnPropertyDescriptor(
|
||||
+ Clutter.ActorMeta.prototype, 'enabled');
|
||||
+ }
|
||||
+
|
||||
+ _overrideEnabledSetter(obj, set) {
|
||||
+ if (!(obj instanceof Clutter.ActorMeta))
|
||||
+ return;
|
||||
+
|
||||
+ const desc = set
|
||||
+ ? { ...this._enabledDesc, set }
|
||||
+ : { ...this._enabledDesc };
|
||||
+ Object.defineProperty(obj, 'enabled', desc);
|
||||
}
|
||||
|
||||
enable() {
|
||||
+ const settings = this._settings;
|
||||
+
|
||||
this._map.forEach(m => {
|
||||
- this._settings.bind(m.setting, m.action, 'enabled',
|
||||
+ settings.bind(m.setting, m.action, 'enabled',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
+
|
||||
+ this._overrideEnabledSetter(m.action, function (value) {
|
||||
+ if (settings.get_boolean(m.setting))
|
||||
+ this.set_enabled(value);
|
||||
+ });
|
||||
});
|
||||
}
|
||||
|
||||
disable() {
|
||||
this._map.forEach(m => {
|
||||
Gio.Settings.unbind(m.action, 'enabled');
|
||||
+ this._overrideEnabledSetter(m.action);
|
||||
m.action.enabled = true;
|
||||
});
|
||||
}
|
||||
--
|
||||
2.33.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 4d57a258f50ab86506642fe8657e80077e9490fc Mon Sep 17 00:00:00 2001
|
||||
From 1982ab4218fa3a7ff622fff5af7c15c2e11351f7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Fri, 23 Feb 2018 16:56:46 +0100
|
||||
Subject: [PATCH] Include top-icons in classic session
|
||||
@ -8,7 +8,7 @@ Subject: [PATCH] Include top-icons in classic session
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index ada6b92..8f01fb3 100644
|
||||
index afc0133..78dee5b 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -31,6 +31,7 @@ classic_extensions = [
|
||||
@ -28,5 +28,5 @@ index ada6b92..8f01fb3 100644
|
||||
'user-theme'
|
||||
]
|
||||
--
|
||||
2.28.0
|
||||
2.32.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 813e1f83a42a0575ab3a5e38b30bcd1437d68652 Mon Sep 17 00:00:00 2001
|
||||
From fe13aa54e7c104f63689fcd15957ab16ffc0c3ef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 17 Mar 2016 17:15:38 +0100
|
||||
Subject: [PATCH] apps-menu: Explicitly set label_actor
|
||||
@ -10,10 +10,10 @@ so set the label_actor explicitly as workaround.
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js
|
||||
index 17285fd..0215c95 100644
|
||||
index 983a4e7..f8cef41 100644
|
||||
--- a/extensions/apps-menu/extension.js
|
||||
+++ b/extensions/apps-menu/extension.js
|
||||
@@ -112,7 +112,9 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
@@ -113,7 +113,9 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
else
|
||||
name = _('Favorites');
|
||||
|
||||
@ -25,5 +25,5 @@ index 17285fd..0215c95 100644
|
||||
this.connect('notify::active', this._onActiveChanged.bind(this));
|
||||
}
|
||||
--
|
||||
2.28.0
|
||||
2.32.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a28e752ac10f9882d33a52189fc237d11d541fed Mon Sep 17 00:00:00 2001
|
||||
From 08e720c793baa0cb12ed99c4333c75df46e3a9ed Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Tue, 21 Jan 2014 16:48:17 -0500
|
||||
Subject: [PATCH] apps-menu: add logo icon to Applications menu
|
||||
@ -9,10 +9,10 @@ Brand requested it.
|
||||
1 file changed, 21 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js
|
||||
index 6376b524..1b1f01f1 100644
|
||||
index e36b0fe..983a4e7 100644
|
||||
--- a/extensions/apps-menu/extension.js
|
||||
+++ b/extensions/apps-menu/extension.js
|
||||
@@ -363,13 +363,24 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
@@ -364,13 +364,24 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
// role ATK_ROLE_MENU like other elements of the panel.
|
||||
this.accessible_role = Atk.Role.LABEL;
|
||||
|
||||
@ -38,7 +38,7 @@ index 6376b524..1b1f01f1 100644
|
||||
this.name = 'panelApplications';
|
||||
this.label_actor = this._label;
|
||||
|
||||
@@ -403,6 +414,14 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
@@ -404,6 +415,14 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this._display();
|
||||
this._installedChangedId = appSys.connect('installed-changed',
|
||||
this._onTreeChanged.bind(this));
|
||||
@ -53,7 +53,7 @@ index 6376b524..1b1f01f1 100644
|
||||
}
|
||||
|
||||
_onTreeChanged() {
|
||||
@@ -428,6 +447,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
@@ -429,6 +448,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
|
||||
Main.overview.disconnect(this._showingId);
|
||||
Main.overview.disconnect(this._hidingId);
|
||||
@ -62,5 +62,5 @@ index 6376b524..1b1f01f1 100644
|
||||
this._tree.disconnect(this._treeChangedId);
|
||||
this._tree = null;
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
@ -0,0 +1,209 @@
|
||||
From 73000f25e578b3ce6654fdf0d3da2ec3d9b95dd2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@redhat.com>
|
||||
Date: Tue, 2 Nov 2021 09:20:11 +0100
|
||||
Subject: [PATCH] desktop-icons: Fix stuck grab issue with rubber banding
|
||||
|
||||
The desktop icons extension can get into a state where the desktop no longer
|
||||
takes mouse input.
|
||||
|
||||
This happens if a user starts a rubber banding operation and then drags
|
||||
the mouse to somewhere on screen that has a pop up menu, and then pops
|
||||
the menu up.
|
||||
|
||||
This commit addresses the bug by limiting the grab actor to the
|
||||
backgrounds, and by explicitly ending the rubber banding operation
|
||||
when one of the icons own menus is shown.
|
||||
|
||||
One side effect of limiting the grab actor to the backgrounds, is the
|
||||
rubber banding code never gets to see motion outside of the backgrounds
|
||||
anymore. In order to keep drag operations feeling fluid when the user moves
|
||||
toward the edge of the screen, this commit also overrides the
|
||||
grab helpers captured-event handler so those motion events keep coming.
|
||||
|
||||
We also start to end the rubber band if for any reason the grab it had
|
||||
was released.
|
||||
---
|
||||
extensions/desktop-icons/desktopGrid.js | 1 +
|
||||
extensions/desktop-icons/desktopManager.js | 109 ++++++++++++---------
|
||||
extensions/desktop-icons/fileItem.js | 1 +
|
||||
3 files changed, 67 insertions(+), 44 deletions(-)
|
||||
|
||||
diff --git a/extensions/desktop-icons/desktopGrid.js b/extensions/desktop-icons/desktopGrid.js
|
||||
index 002803c..c7846bf 100644
|
||||
--- a/extensions/desktop-icons/desktopGrid.js
|
||||
+++ b/extensions/desktop-icons/desktopGrid.js
|
||||
@@ -388,6 +388,7 @@ var DesktopGrid = GObject.registerClass({
|
||||
}
|
||||
|
||||
_openMenu(x, y) {
|
||||
+ Extension.desktopManager.endRubberBand();
|
||||
Main.layoutManager.setDummyCursorGeometry(x, y, 0, 0);
|
||||
this._submenu.menu.removeAll();
|
||||
let templates = Extension.templateManager.getTemplates();
|
||||
diff --git a/extensions/desktop-icons/desktopManager.js b/extensions/desktop-icons/desktopManager.js
|
||||
index 10e3ce0..08bc82b 100644
|
||||
--- a/extensions/desktop-icons/desktopManager.js
|
||||
+++ b/extensions/desktop-icons/desktopManager.js
|
||||
@@ -81,6 +81,7 @@ var DesktopManager = GObject.registerClass({
|
||||
this._unixMode = null;
|
||||
this._writableByOthers = null;
|
||||
this._discreteGpuAvailable = false;
|
||||
+ this._rubberBandActive = false;
|
||||
|
||||
this._monitorsChangedId = Main.layoutManager.connect('monitors-changed', () => this._recreateDesktopIcons());
|
||||
this._rubberBand = new St.Widget({ style_class: 'rubber-band' });
|
||||
@@ -94,6 +95,20 @@ var DesktopManager = GObject.registerClass({
|
||||
this._mountRemovedId = this._mountMonitor.connect('mount-removed', (monitor, mount) => {
|
||||
this._recreateDesktopIcons(); });
|
||||
|
||||
+ let origCapturedEvent = this._grabHelper.onCapturedEvent;
|
||||
+ this._grabHelper.onCapturedEvent = (event) => {
|
||||
+ if (event.type() === Clutter.EventType.MOTION) {
|
||||
+ /* We handle motion events from a captured event handler so we
|
||||
+ * we can see motion over actors that are on other parts of the
|
||||
+ * stage.
|
||||
+ */
|
||||
+ this._handleMotion(event);
|
||||
+ return Clutter.EVENT_STOP;
|
||||
+ }
|
||||
+
|
||||
+ return origCapturedEvent.bind(this._grabHelper)(event);
|
||||
+ };
|
||||
+
|
||||
this._addDesktopIcons();
|
||||
this._monitorDesktopFolder();
|
||||
|
||||
@@ -133,57 +148,67 @@ var DesktopManager = GObject.registerClass({
|
||||
this._rubberBandInitialY = y;
|
||||
this._updateRubberBand(x, y);
|
||||
this._rubberBand.show();
|
||||
- this._grabHelper.grab({ actor: global.stage });
|
||||
+ this._rubberBandActive = true;
|
||||
+ this._grabHelper.grab({
|
||||
+ actor: Main.layoutManager._backgroundGroup,
|
||||
+ onUngrab: () => this.endRubberBand(false),
|
||||
+ });
|
||||
Extension.lockActivitiesButton = true;
|
||||
this._stageReleaseEventId = global.stage.connect('button-release-event', (actor, event) => {
|
||||
this.endRubberBand();
|
||||
});
|
||||
this._rubberBandId = global.stage.connect('motion-event', (actor, event) => {
|
||||
- /* In some cases, when the user starts a rubberband selection and ends it
|
||||
- * (by releasing the left button) over a window instead of doing it over
|
||||
- * the desktop, the stage doesn't receive the "button-release" event.
|
||||
- * This happens currently with, at least, Dash to Dock extension, but
|
||||
- * it probably also happens with other applications or extensions.
|
||||
- * To fix this, we also end the rubberband selection if we detect mouse
|
||||
- * motion in the stage without the left button pressed during a
|
||||
- * rubberband selection.
|
||||
- * */
|
||||
- let button = event.get_state();
|
||||
- if (!(button & Clutter.ModifierType.BUTTON1_MASK)) {
|
||||
- this.endRubberBand();
|
||||
- return;
|
||||
- }
|
||||
- [x, y] = event.get_coords();
|
||||
- this._updateRubberBand(x, y);
|
||||
- let x0, y0, x1, y1;
|
||||
- if (x >= this._rubberBandInitialX) {
|
||||
- x0 = this._rubberBandInitialX;
|
||||
- x1 = x;
|
||||
- } else {
|
||||
- x1 = this._rubberBandInitialX;
|
||||
- x0 = x;
|
||||
- }
|
||||
- if (y >= this._rubberBandInitialY) {
|
||||
- y0 = this._rubberBandInitialY;
|
||||
- y1 = y;
|
||||
- } else {
|
||||
- y1 = this._rubberBandInitialY;
|
||||
- y0 = y;
|
||||
- }
|
||||
- for (let [fileUri, fileItem] of this._fileItems) {
|
||||
- fileItem.emit('selected', true, true,
|
||||
- fileItem.intersectsWith(x0, y0, x1 - x0, y1 - y0));
|
||||
- }
|
||||
});
|
||||
}
|
||||
|
||||
- endRubberBand() {
|
||||
+ _handleMotion(event) {
|
||||
+ /* In some cases, when the user starts a rubberband selection and ends it
|
||||
+ * (by releasing the left button) over a window instead of doing it over
|
||||
+ * the desktop, the stage doesn't receive the "button-release" event.
|
||||
+ * This happens currently with, at least, Dash to Dock extension, but
|
||||
+ * it probably also happens with other applications or extensions.
|
||||
+ * To fix this, we also end the rubberband selection if we detect mouse
|
||||
+ * motion in the stage without the left button pressed during a
|
||||
+ * rubberband selection.
|
||||
+ * */
|
||||
+ let button = event.get_state();
|
||||
+ if (!(button & Clutter.ModifierType.BUTTON1_MASK)) {
|
||||
+ this.endRubberBand();
|
||||
+ return;
|
||||
+ }
|
||||
+ let [x, y] = event.get_coords();
|
||||
+ this._updateRubberBand(x, y);
|
||||
+ let x0, y0, x1, y1;
|
||||
+ if (x >= this._rubberBandInitialX) {
|
||||
+ x0 = this._rubberBandInitialX;
|
||||
+ x1 = x;
|
||||
+ } else {
|
||||
+ x1 = this._rubberBandInitialX;
|
||||
+ x0 = x;
|
||||
+ }
|
||||
+ if (y >= this._rubberBandInitialY) {
|
||||
+ y0 = this._rubberBandInitialY;
|
||||
+ y1 = y;
|
||||
+ } else {
|
||||
+ y1 = this._rubberBandInitialY;
|
||||
+ y0 = y;
|
||||
+ }
|
||||
+ for (let [fileUri, fileItem] of this._fileItems) {
|
||||
+ fileItem.emit('selected', true, true,
|
||||
+ fileItem.intersectsWith(x0, y0, x1 - x0, y1 - y0));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ endRubberBand(ungrab=true) {
|
||||
+ if (!this._rubberBandActive)
|
||||
+ return;
|
||||
+
|
||||
+ this._rubberBandActive = false;
|
||||
this._rubberBand.hide();
|
||||
Extension.lockActivitiesButton = false;
|
||||
- this._grabHelper.ungrab();
|
||||
- global.stage.disconnect(this._rubberBandId);
|
||||
+ if (ungrab)
|
||||
+ this._grabHelper.ungrab();
|
||||
global.stage.disconnect(this._stageReleaseEventId);
|
||||
- this._rubberBandId = 0;
|
||||
this._stageReleaseEventId = 0;
|
||||
|
||||
this._selection = new Set([...this._selection, ...this._currentSelection]);
|
||||
@@ -825,10 +850,6 @@ var DesktopManager = GObject.registerClass({
|
||||
global.stage.disconnect(this._stageReleaseEventId);
|
||||
this._stageReleaseEventId = 0;
|
||||
|
||||
- if (this._rubberBandId)
|
||||
- global.stage.disconnect(this._rubberBandId);
|
||||
- this._rubberBandId = 0;
|
||||
-
|
||||
this._rubberBand.destroy();
|
||||
|
||||
if (this._queryFileInfoCancellable)
|
||||
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
|
||||
index 1e8ea89..37ee54d 100644
|
||||
--- a/extensions/desktop-icons/fileItem.js
|
||||
+++ b/extensions/desktop-icons/fileItem.js
|
||||
@@ -747,6 +747,7 @@ var FileItem = GObject.registerClass({
|
||||
}
|
||||
|
||||
_onPressButton(actor, event) {
|
||||
+ Extension.desktopManager.endRubberBand();
|
||||
this._updateClickState(event);
|
||||
let button = event.get_button();
|
||||
if (button == 3) {
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3e26797049c9cca7f40ffbe5432e1185ff6deb1e Mon Sep 17 00:00:00 2001
|
||||
From ba4208c00504439bad19de4680fac68210767798 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 27 Jan 2021 11:51:28 +0100
|
||||
Subject: [PATCH] desktop-icons: Update Japanese translation
|
||||
@ -25,5 +25,5 @@ index 8eb7725..ddf1eb7 100644
|
||||
#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
|
||||
#, fuzzy
|
||||
--
|
||||
2.28.0
|
||||
2.32.0
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
From ce48dc2f4fba6a7084540df256cb5b3eb0da43da Mon Sep 17 00:00:00 2001
|
||||
From f0e4618bf0752aaf094d78b4c810ebda817ccaad Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 2 Jun 2021 17:32:21 +0200
|
||||
Subject: [PATCH] top-icons: Don't use wm_class as role
|
||||
@ -10,7 +10,7 @@ which may be desirable in some circumstances.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/extensions/top-icons/extension.js b/extensions/top-icons/extension.js
|
||||
index 79e2f423..3dfba469 100644
|
||||
index 79e2f42..3dfba46 100644
|
||||
--- a/extensions/top-icons/extension.js
|
||||
+++ b/extensions/top-icons/extension.js
|
||||
@@ -63,7 +63,7 @@ class SysTray {
|
||||
@ -23,5 +23,5 @@ index 79e2f423..3dfba469 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
From 8f9a1adcb9b8d62f537d53562c8324175310d577 Mon Sep 17 00:00:00 2001
|
||||
From afa394114c57197e96f18e7942729634ece5d3c4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 19 May 2021 16:46:59 +0200
|
||||
Subject: [PATCH 1/2] desktop-icons: Revert "Use GTK-Theme CSS for selected
|
||||
@ -150,10 +150,10 @@ index 61b4ce8..4fd31c3 100644
|
||||
text-shadow: 1px 1px black;
|
||||
color: white;
|
||||
--
|
||||
2.28.0
|
||||
2.32.0
|
||||
|
||||
|
||||
From 7f31b7697d3bacf53d5d37cb34642d82ea109a52 Mon Sep 17 00:00:00 2001
|
||||
From ca050d098240b3e757f172d2012f7d1b91db3ff6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Fri, 21 May 2021 00:50:52 +0200
|
||||
Subject: [PATCH 2/2] desktop-icons: Port prefs to GTK4
|
||||
@ -227,5 +227,5 @@ index 890bcdb..c390aa8 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.28.0
|
||||
2.32.0
|
||||
|
||||
|
189
SOURCES/gnome-classic-wayland.patch
Normal file
189
SOURCES/gnome-classic-wayland.patch
Normal file
@ -0,0 +1,189 @@
|
||||
From a79d2afb2d6119ae3a4d1eba020d6c35b3fece23 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <ngompa@fedoraproject.org>
|
||||
Date: Fri, 29 Oct 2021 09:33:06 -0400
|
||||
Subject: [PATCH 1/2] classic: Add X-GNOME-SessionRegisters
|
||||
|
||||
GDM has supported sessions registering with it for a few years now so
|
||||
it can know when to shut down the greeter. Having the GNOME Classic
|
||||
session declare that it will register itself allows GDM to avoid
|
||||
executing a fallback codepath.
|
||||
|
||||
This has been supported with the regular GNOME session for a while,
|
||||
and this session was likely forgotten about when it was added there.
|
||||
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/195>
|
||||
---
|
||||
data/gnome-classic.desktop.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/data/gnome-classic.desktop.in b/data/gnome-classic.desktop.in
|
||||
index 5df6821..13da2b5 100644
|
||||
--- a/data/gnome-classic.desktop.in
|
||||
+++ b/data/gnome-classic.desktop.in
|
||||
@@ -5,3 +5,4 @@ Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
|
||||
TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Classic;GNOME;
|
||||
+X-GDM-SessionRegisters=true
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
||||
From eb517c851777067087c3bf067c2baf10dcaf4128 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <ngompa@fedoraproject.org>
|
||||
Date: Fri, 29 Oct 2021 09:37:33 -0400
|
||||
Subject: [PATCH 2/2] classic: Install the session for Wayland and ship
|
||||
override sessions
|
||||
|
||||
The regular GNOME session ships with three options:
|
||||
|
||||
* GNOME
|
||||
* GNOME on Wayland (available when GDM starts in X11)
|
||||
* GNOME on Xorg (available when GDM starts in Wayland)
|
||||
|
||||
The main GNOME session is set up so it works to match how GDM starts,
|
||||
so GNOME is on Wayland if GDM is (or GNOME is on X11 if GDM is).
|
||||
|
||||
For GNOME Classic, we are missing this setup, so port this behavior
|
||||
over from the GNOME session setup.
|
||||
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/195>
|
||||
---
|
||||
data/gnome-classic-wayland.desktop.in | 8 ++++++
|
||||
data/gnome-classic-xorg.desktop.in | 8 ++++++
|
||||
data/meson.build | 40 +++++++++++++++++++++------
|
||||
meson.build | 5 ++++
|
||||
meson/session-post-install.py | 20 ++++++++++++++
|
||||
5 files changed, 72 insertions(+), 9 deletions(-)
|
||||
create mode 100644 data/gnome-classic-wayland.desktop.in
|
||||
create mode 100644 data/gnome-classic-xorg.desktop.in
|
||||
create mode 100755 meson/session-post-install.py
|
||||
|
||||
diff --git a/data/gnome-classic-wayland.desktop.in b/data/gnome-classic-wayland.desktop.in
|
||||
new file mode 100644
|
||||
index 0000000..7287c68
|
||||
--- /dev/null
|
||||
+++ b/data/gnome-classic-wayland.desktop.in
|
||||
@@ -0,0 +1,8 @@
|
||||
+[Desktop Entry]
|
||||
+Name=GNOME Classic on Wayland
|
||||
+Comment=This session logs you into GNOME Classic
|
||||
+Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
|
||||
+TryExec=gnome-session
|
||||
+Type=Application
|
||||
+DesktopNames=GNOME-Classic;GNOME;
|
||||
+X-GDM-SessionRegisters=true
|
||||
diff --git a/data/gnome-classic-xorg.desktop.in b/data/gnome-classic-xorg.desktop.in
|
||||
new file mode 100644
|
||||
index 0000000..5fb338a
|
||||
--- /dev/null
|
||||
+++ b/data/gnome-classic-xorg.desktop.in
|
||||
@@ -0,0 +1,8 @@
|
||||
+[Desktop Entry]
|
||||
+Name=GNOME Classic on Xorg
|
||||
+Comment=This session logs you into GNOME Classic
|
||||
+Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
|
||||
+TryExec=gnome-session
|
||||
+Type=Application
|
||||
+DesktopNames=GNOME-Classic;GNOME;
|
||||
+X-GDM-SessionRegisters=true
|
||||
diff --git a/data/meson.build b/data/meson.build
|
||||
index 27f4287..47fe798 100644
|
||||
--- a/data/meson.build
|
||||
+++ b/data/meson.build
|
||||
@@ -1,12 +1,34 @@
|
||||
-session_desktop = 'gnome-classic.desktop'
|
||||
-i18n.merge_file('',
|
||||
- input: session_desktop + '.in',
|
||||
- output: session_desktop,
|
||||
- po_dir: '../po',
|
||||
- install: true,
|
||||
- install_dir: xsessiondir,
|
||||
- type: 'desktop'
|
||||
-)
|
||||
+session_desktop_base = 'gnome-classic'
|
||||
+
|
||||
+session_desktops = [
|
||||
+ session_desktop_base,
|
||||
+ session_desktop_base + '-xorg',
|
||||
+ session_desktop_base + '-wayland',
|
||||
+]
|
||||
+
|
||||
+foreach name: session_desktops
|
||||
+ session_desktop = name + '.desktop'
|
||||
+ if name.endswith('-xorg')
|
||||
+ session_instdir = xsessiondir
|
||||
+ elif name.endswith('-wayland')
|
||||
+ session_instdir = wlsessiondir
|
||||
+ else
|
||||
+ # FIXME: The same target can not be copied into two directories.
|
||||
+ # There is a workaround in meson/session-post-install.py until proper
|
||||
+ # solution arises:
|
||||
+ # https://github.com/mesonbuild/meson/issues/2416
|
||||
+ session_instdir = xsessiondir
|
||||
+ #session_instdir = [ xesssiondir, wlsessiondir ]
|
||||
+ endif
|
||||
+ i18n.merge_file('',
|
||||
+ input: session_desktop + '.in',
|
||||
+ output: session_desktop,
|
||||
+ po_dir: '../po',
|
||||
+ install: true,
|
||||
+ install_dir: session_instdir,
|
||||
+ type: 'desktop'
|
||||
+ )
|
||||
+endforeach
|
||||
|
||||
classic_uuids = []
|
||||
foreach e : classic_extensions
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 8f2afda..33006b3 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -20,6 +20,7 @@ themedir = join_paths(shelldir, 'theme')
|
||||
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
|
||||
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
|
||||
xsessiondir = join_paths(datadir, 'xsessions')
|
||||
+wlsessiondir = join_paths(datadir, 'wayland-sessions')
|
||||
|
||||
ver_arr = meson.project_version().split('.')
|
||||
shell_version = ver_arr[0]
|
||||
@@ -83,6 +84,10 @@ endforeach
|
||||
|
||||
if classic_mode_enabled
|
||||
subdir('data')
|
||||
+ meson.add_install_script(
|
||||
+ 'meson/session-post-install.py',
|
||||
+ join_paths(get_option('prefix'), datadir)
|
||||
+ )
|
||||
endif
|
||||
|
||||
subdir('extensions')
|
||||
diff --git a/meson/session-post-install.py b/meson/session-post-install.py
|
||||
new file mode 100755
|
||||
index 0000000..36abe5e
|
||||
--- /dev/null
|
||||
+++ b/meson/session-post-install.py
|
||||
@@ -0,0 +1,20 @@
|
||||
+#!/usr/bin/env python3
|
||||
+
|
||||
+import os
|
||||
+import shutil
|
||||
+import sys
|
||||
+
|
||||
+if os.environ.get('DESTDIR'):
|
||||
+ install_root = os.environ.get('DESTDIR') + os.path.abspath(sys.argv[1])
|
||||
+else:
|
||||
+ install_root = sys.argv[1]
|
||||
+
|
||||
+# FIXME: Meson is unable to copy a generated target file:
|
||||
+# https://groups.google.com/forum/#!topic/mesonbuild/3iIoYPrN4P0
|
||||
+dst_dir = os.path.join(install_root, 'wayland-sessions')
|
||||
+if not os.path.exists(dst_dir):
|
||||
+ os.makedirs(dst_dir)
|
||||
+
|
||||
+src = os.path.join(install_root, 'xsessions', 'gnome-classic.desktop')
|
||||
+dst = os.path.join(dst_dir, 'gnome-classic.desktop')
|
||||
+shutil.copyfile(src, dst)
|
||||
--
|
||||
2.33.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3178a99e48167ad31b1e52e9afc2041bfee34593 Mon Sep 17 00:00:00 2001
|
||||
From 2e00e631c7def6d58bdb1eb0fa3254ae82a37574 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 17 May 2017 19:13:50 +0200
|
||||
Subject: [PATCH 1/6] extensions: Resurrect systemMonitor extension
|
||||
@ -26,7 +26,7 @@ This reverts commit c9a6421f362cd156cf731289eadc11f44f6970ac.
|
||||
|
||||
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
|
||||
new file mode 100644
|
||||
index 00000000..7b09df01
|
||||
index 0000000..7b09df0
|
||||
--- /dev/null
|
||||
+++ b/extensions/systemMonitor/extension.js
|
||||
@@ -0,0 +1,376 @@
|
||||
@ -408,7 +408,7 @@ index 00000000..7b09df01
|
||||
+}
|
||||
diff --git a/extensions/systemMonitor/meson.build b/extensions/systemMonitor/meson.build
|
||||
new file mode 100644
|
||||
index 00000000..48504f63
|
||||
index 0000000..48504f6
|
||||
--- /dev/null
|
||||
+++ b/extensions/systemMonitor/meson.build
|
||||
@@ -0,0 +1,5 @@
|
||||
@ -419,7 +419,7 @@ index 00000000..48504f63
|
||||
+)
|
||||
diff --git a/extensions/systemMonitor/metadata.json.in b/extensions/systemMonitor/metadata.json.in
|
||||
new file mode 100644
|
||||
index 00000000..fa750074
|
||||
index 0000000..fa75007
|
||||
--- /dev/null
|
||||
+++ b/extensions/systemMonitor/metadata.json.in
|
||||
@@ -0,0 +1,11 @@
|
||||
@ -436,7 +436,7 @@ index 00000000..fa750074
|
||||
+}
|
||||
diff --git a/extensions/systemMonitor/stylesheet.css b/extensions/systemMonitor/stylesheet.css
|
||||
new file mode 100644
|
||||
index 00000000..13f95ec7
|
||||
index 0000000..13f95ec
|
||||
--- /dev/null
|
||||
+++ b/extensions/systemMonitor/stylesheet.css
|
||||
@@ -0,0 +1,35 @@
|
||||
@ -476,7 +476,7 @@ index 00000000..13f95ec7
|
||||
+ font-weight: bold;
|
||||
+}
|
||||
diff --git a/meson.build b/meson.build
|
||||
index b95dfc30..ada6b921 100644
|
||||
index 6a2fdf0..afc0133 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -48,6 +48,7 @@ all_extensions += [
|
||||
@ -488,10 +488,10 @@ index b95dfc30..ada6b921 100644
|
||||
'updates-dialog',
|
||||
'user-theme'
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
||||
From d93f5edfc243dc065db74535de3db1222b483865 Mon Sep 17 00:00:00 2001
|
||||
From 59927edac1f40239d7926f0285249c933ea42caf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Fri, 17 May 2019 22:55:48 +0000
|
||||
Subject: [PATCH 2/6] systemMonitor: Modernise code
|
||||
@ -507,7 +507,7 @@ Subject: [PATCH 2/6] systemMonitor: Modernise code
|
||||
1 file changed, 212 insertions(+), 210 deletions(-)
|
||||
|
||||
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
|
||||
index 7b09df01..f7c6a4a9 100644
|
||||
index 7b09df0..f7c6a4a 100644
|
||||
--- a/extensions/systemMonitor/extension.js
|
||||
+++ b/extensions/systemMonitor/extension.js
|
||||
@@ -1,56 +1,57 @@
|
||||
@ -1081,10 +1081,10 @@ index 7b09df01..f7c6a4a9 100644
|
||||
function init() {
|
||||
return new Extension();
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
||||
From 84d881157d59a8701f351f69698edfbaf806898e Mon Sep 17 00:00:00 2001
|
||||
From 71e275ba45b09c5f8c6ca5445a459196dc65474b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 26 May 2021 19:50:37 +0200
|
||||
Subject: [PATCH 3/6] systemMonitor: Make label property private
|
||||
@ -1096,7 +1096,7 @@ clash when we subclass St.Button.
|
||||
1 file changed, 18 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
|
||||
index f7c6a4a9..bde25a1d 100644
|
||||
index f7c6a4a..bde25a1 100644
|
||||
--- a/extensions/systemMonitor/extension.js
|
||||
+++ b/extensions/systemMonitor/extension.js
|
||||
@@ -19,6 +19,7 @@ const ITEM_HOVER_TIMEOUT = 300;
|
||||
@ -1187,10 +1187,10 @@ index f7c6a4a9..bde25a1d 100644
|
||||
|
||||
_initValues() {
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
||||
From fd961a7f6766e4c48d492bb4e37ee8bc250eb228 Mon Sep 17 00:00:00 2001
|
||||
From b310c3a5b532a18af38390021daa332961e404ef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 17 May 2017 19:31:58 +0200
|
||||
Subject: [PATCH 4/6] systemMonitor: Move indicators to calendar
|
||||
@ -1206,7 +1206,7 @@ it up quickly).
|
||||
2 files changed, 50 insertions(+), 70 deletions(-)
|
||||
|
||||
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
|
||||
index bde25a1d..1fd01ab4 100644
|
||||
index bde25a1..1fd01ab 100644
|
||||
--- a/extensions/systemMonitor/extension.js
|
||||
+++ b/extensions/systemMonitor/extension.js
|
||||
@@ -2,10 +2,11 @@
|
||||
@ -1418,7 +1418,7 @@ index bde25a1d..1fd01ab4 100644
|
||||
return;
|
||||
|
||||
diff --git a/extensions/systemMonitor/stylesheet.css b/extensions/systemMonitor/stylesheet.css
|
||||
index 13f95ec7..978ac12a 100644
|
||||
index 13f95ec..978ac12 100644
|
||||
--- a/extensions/systemMonitor/stylesheet.css
|
||||
+++ b/extensions/systemMonitor/stylesheet.css
|
||||
@@ -1,17 +1,4 @@
|
||||
@ -1448,10 +1448,10 @@ index 13f95ec7..978ac12a 100644
|
||||
|
||||
.extension-systemMonitor-indicator-label {
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
||||
From 5796b0714f03cb1faa5cd70d50b46b57f67c4eea Mon Sep 17 00:00:00 2001
|
||||
From 432f525336a5da1a545546ab40f882f44ac42bb7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 18 May 2017 16:20:07 +0200
|
||||
Subject: [PATCH 5/6] systemMonitor: Handle clicks on section title
|
||||
@ -1467,7 +1467,7 @@ Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions3
|
||||
1 file changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
|
||||
index 1fd01ab4..57bdb51f 100644
|
||||
index 1fd01ab..57bdb51 100644
|
||||
--- a/extensions/systemMonitor/extension.js
|
||||
+++ b/extensions/systemMonitor/extension.js
|
||||
@@ -300,6 +300,22 @@ class MemoryIndicator extends Indicator {
|
||||
@ -1503,10 +1503,10 @@ index 1fd01ab4..57bdb51f 100644
|
||||
for (let i = 0; i < INDICATORS.length; i++) {
|
||||
let indicator = new INDICATORS[i]();
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
||||
From e762e2dd17cc62b9258e44458157997a07bbdbfa Mon Sep 17 00:00:00 2001
|
||||
From 657155f8f37a8d0ddf7c39dbff954d87202c681e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Thu, 18 May 2017 18:00:17 +0200
|
||||
Subject: [PATCH 6/6] systemMonitor: Provide classic styling
|
||||
@ -1524,7 +1524,7 @@ Fixes: #4
|
||||
|
||||
diff --git a/extensions/systemMonitor/classic.css b/extensions/systemMonitor/classic.css
|
||||
new file mode 100644
|
||||
index 00000000..946863dc
|
||||
index 0000000..946863d
|
||||
--- /dev/null
|
||||
+++ b/extensions/systemMonitor/classic.css
|
||||
@@ -0,0 +1,6 @@
|
||||
@ -1535,7 +1535,7 @@ index 00000000..946863dc
|
||||
+ border: 1px solid #a1a1a1;
|
||||
+}
|
||||
diff --git a/extensions/systemMonitor/meson.build b/extensions/systemMonitor/meson.build
|
||||
index 48504f63..b6548b14 100644
|
||||
index 48504f6..b6548b1 100644
|
||||
--- a/extensions/systemMonitor/meson.build
|
||||
+++ b/extensions/systemMonitor/meson.build
|
||||
@@ -3,3 +3,7 @@ extension_data += configure_file(
|
||||
@ -1547,5 +1547,5 @@ index 48504f63..b6548b14 100644
|
||||
+ extension_data += files('classic.css')
|
||||
+endif
|
||||
--
|
||||
2.31.1
|
||||
2.32.0
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
Name: gnome-shell-extensions
|
||||
Version: 40.4
|
||||
Release: 1%{?dist}
|
||||
Release: 7%{?dist}
|
||||
Summary: Modify and extend GNOME Shell functionality and behavior
|
||||
|
||||
License: GPLv2+
|
||||
@ -29,6 +29,10 @@ Patch006: 0001-Include-top-icons-in-classic-session.patch
|
||||
Patch007: 0001-desktop-icons-Update-Japanese-translation.patch
|
||||
Patch008: desktop-icons-40-fixes.patch
|
||||
Patch009: 0001-top-icons-Don-t-use-wm_class-as-role.patch
|
||||
Patch010: 0001-heads-up-display-Add-extension-for-showing-persisten.patch
|
||||
Patch011: 0001-Add-gesture-inhibitor-extension.patch
|
||||
Patch012: gnome-classic-wayland.patch
|
||||
Patch013: 0001-desktop-icons-Fix-stuck-grab-issue-with-rubber-bandi.patch
|
||||
|
||||
%description
|
||||
GNOME Shell Extensions is a collection of extensions providing additional and
|
||||
@ -40,7 +44,9 @@ Enabled extensions:
|
||||
* dash-to-dock
|
||||
* desktop-icons
|
||||
* drive-menu
|
||||
* gesture-inhibitor
|
||||
* launch-new-instance
|
||||
* heads-up-display
|
||||
* native-window-placement
|
||||
* panel-favorites
|
||||
* places-menu
|
||||
@ -129,6 +135,16 @@ This GNOME Shell extension provides a panel status menu for accessing and
|
||||
unmounting removable devices.
|
||||
|
||||
|
||||
%package -n %{pkg_prefix}-gesture-inhibitor
|
||||
Summary: Gesture inhibitor
|
||||
Group: User Interface/Desktops
|
||||
License: GPLv2+
|
||||
Requires: %{pkg_prefix}-common = %{version}-%{release}
|
||||
|
||||
%description -n %{pkg_prefix}-gesture-inhibitor
|
||||
This GNOME Shell extension allows disabling the default desktop gestures.
|
||||
|
||||
|
||||
%package -n %{pkg_prefix}-launch-new-instance
|
||||
Summary: Always launch a new application instance for GNOME Shell
|
||||
License: GPLv2+
|
||||
@ -139,6 +155,17 @@ This GNOME Shell extension modifies the behavior of clicking in the dash and app
|
||||
launcher to always launch a new application instance.
|
||||
|
||||
|
||||
%package -n %{pkg_prefix}-heads-up-display
|
||||
Summary: Display persistent on-screen message
|
||||
Group: User Interface/Desktops
|
||||
License: GPLv3+
|
||||
Requires: %{pkg_prefix}-common = %{version}-%{release}
|
||||
|
||||
%description -n %{pkg_prefix}-heads-up-display
|
||||
This GNOME Shell extension displays a persistent message in the top middle of the screen.
|
||||
This message can appear on the login screen, lock screen, or regular user session.
|
||||
|
||||
|
||||
%package -n %{pkg_prefix}-native-window-placement
|
||||
Summary: Native window placement for GNOME Shell
|
||||
License: GPLv2+
|
||||
@ -270,6 +297,9 @@ workspaces.
|
||||
%{_datadir}/gnome-shell/theme/gnome-classic-high-contrast.css
|
||||
%{_datadir}/gnome-shell/theme/gnome-classic.css
|
||||
%{_datadir}/xsessions/gnome-classic.desktop
|
||||
%{_datadir}/xsessions/gnome-classic-xorg.desktop
|
||||
%{_datadir}/wayland-sessions/gnome-classic.desktop
|
||||
%{_datadir}/wayland-sessions/gnome-classic-wayland.desktop
|
||||
%{_datadir}/glib-2.0/schemas/00_org.gnome.shell.extensions.classic.gschema.override
|
||||
|
||||
%files -n %{pkg_prefix}-apps-menu
|
||||
@ -295,10 +325,20 @@ workspaces.
|
||||
%{_datadir}/gnome-shell/extensions/drive-menu*/
|
||||
|
||||
|
||||
%files -n %{pkg_prefix}-gesture-inhibitor
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.gesture-inhibitor.gschema.xml
|
||||
%{_datadir}/gnome-shell/extensions/gesture-inhibitor*/
|
||||
|
||||
|
||||
%files -n %{pkg_prefix}-launch-new-instance
|
||||
%{_datadir}/gnome-shell/extensions/launch-new-instance*/
|
||||
|
||||
|
||||
%files -n %{pkg_prefix}-heads-up-display
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.heads-up-display.gschema.xml
|
||||
%{_datadir}/gnome-shell/extensions/heads-up-display*/
|
||||
|
||||
|
||||
%files -n %{pkg_prefix}-native-window-placement
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.native-window-placement.gschema.xml
|
||||
%{_datadir}/gnome-shell/extensions/native-window-placement*/
|
||||
@ -349,6 +389,30 @@ workspaces.
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Nov 18 2021 Florian Müllner <fmuellner@redhat.com> - 40.4-7
|
||||
- Prevent gnome-shell from re-enabling inhibited gestures
|
||||
Resolves: #2013196
|
||||
|
||||
* Mon Nov 08 2021 Jonas Ådahl <jadahl@redhat.com> - 40.4-6
|
||||
- Fix stuck grab on desktop-icons
|
||||
Resolves: #2019715
|
||||
|
||||
* Fri Oct 29 2021 Neal Gompa <ngompa@centosproject.org> - 40.4-5
|
||||
- Backport GNOME Classic session for Wayland
|
||||
Resolves: #2015914
|
||||
|
||||
* Wed Oct 20 2021 Florian Müllner <fmuellner@redhat.com> - 40.4-4
|
||||
- Adjust gesture-inhibitor extension to GNOME 40 changes
|
||||
Resolves: #2013196
|
||||
|
||||
* Wed Oct 20 2021 Florian Müllner <fmuellner@redhat.com> - 40.4-3
|
||||
- Add gesture-inhibitor extension
|
||||
Resolves: #2013196
|
||||
|
||||
* Mon Sep 27 2021 Ray Strode <rstrode@redhat.com> - 40.4-2
|
||||
- Add extension for displaying heads up message
|
||||
Related: #2006985
|
||||
|
||||
* Mon Aug 23 2021 Florian Müllner <fmuellner@redhat.com> - 40.4-1
|
||||
- Update to 40.4
|
||||
Resolves: #1995095
|
||||
|
Loading…
Reference in New Issue
Block a user