import gnome-shell-extensions-3.32.1-19.el8
This commit is contained in:
parent
524a006506
commit
f9e586ebd7
186
SOURCES/0001-Add-gesture-inhibitor-extension.patch
Normal file
186
SOURCES/0001-Add-gesture-inhibitor-extension.patch
Normal file
@ -0,0 +1,186 @@
|
||||
From 7a6819443c896ce288e420cb9bfebebaade61fdb Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Thu, 28 Jan 2021 00:06:12 +0100
|
||||
Subject: [PATCH] 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 0000000..e74ede2
|
||||
--- /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 0000000..fdad5cc
|
||||
--- /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 0000000..37d6a11
|
||||
--- /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 0000000..1d67dcc
|
||||
--- /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 0000000..37b93f2
|
||||
--- /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 23bd5ad..9e59729 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -54,6 +54,7 @@ all_extensions += [
|
||||
'auto-move-windows',
|
||||
'dash-to-dock',
|
||||
'disable-screenshield',
|
||||
+ 'gesture-inhibitor',
|
||||
'native-window-placement',
|
||||
'no-hot-corner',
|
||||
'panel-favorites',
|
||||
--
|
||||
2.29.2
|
||||
|
45
SOURCES/0001-general-launch-only-executable-files.patch
Normal file
45
SOURCES/0001-general-launch-only-executable-files.patch
Normal file
@ -0,0 +1,45 @@
|
||||
From ee89a91a9ac235b69ff3c47af14d702c0309e892 Mon Sep 17 00:00:00 2001
|
||||
From: Sergio Costas <raster@rastersoft.com>
|
||||
Date: Thu, 25 Jul 2019 00:12:09 +0200
|
||||
Subject: [PATCH] general: launch only executable files
|
||||
|
||||
Until now, if a file has the "execute" flag, clicking on it will try
|
||||
to execute it, no matter if it is really an executable. This means
|
||||
that a non-executable file (like a JPEG picture, or a text file)
|
||||
won't be opened with its desired application if it has set the
|
||||
executable flag.
|
||||
|
||||
This patch fixes this, by ensuring that the only files that can be
|
||||
executed when the "execute" flag is set, are the ones that makes
|
||||
sense to execute.
|
||||
|
||||
Fixes https://gitlab.gnome.org/World/ShellExtensions/desktop-icons/issues/144
|
||||
---
|
||||
extensions/desktop-icons/fileItem.js | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
|
||||
index d6d43c9f..44a93352 100644
|
||||
--- a/extensions/desktop-icons/fileItem.js
|
||||
+++ b/extensions/desktop-icons/fileItem.js
|
||||
@@ -440,10 +440,13 @@ var FileItem = class {
|
||||
return;
|
||||
}
|
||||
|
||||
- if (this._attributeCanExecute && !this._isDirectory && !this._isValidDesktopFile) {
|
||||
- if (this._execLine)
|
||||
- Util.spawnCommandLine(this._execLine);
|
||||
- return;
|
||||
+ if (this._attributeCanExecute &&
|
||||
+ !this._isDirectory &&
|
||||
+ !this._isValidDesktopFile &&
|
||||
+ Gio.content_type_can_be_executable(this._attributeContentType)) {
|
||||
+ if (this._execLine)
|
||||
+ Util.spawnCommandLine(this._execLine);
|
||||
+ return;
|
||||
}
|
||||
|
||||
Gio.AppInfo.launch_default_for_uri_async(this.file.get_uri(),
|
||||
--
|
||||
2.31.1
|
||||
|
27
SOURCES/0001-top-icons-Don-t-use-wm_class-as-role.patch
Normal file
27
SOURCES/0001-top-icons-Don-t-use-wm_class-as-role.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From ce48dc2f4fba6a7084540df256cb5b3eb0da43da 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
|
||||
|
||||
This prevents adding icons for multiple instances of the same app,
|
||||
which may be desirable in some circumstances.
|
||||
---
|
||||
extensions/top-icons/extension.js | 2 +-
|
||||
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
|
||||
--- a/extensions/top-icons/extension.js
|
||||
+++ b/extensions/top-icons/extension.js
|
||||
@@ -63,7 +63,7 @@ class SysTray {
|
||||
button.destroy();
|
||||
});
|
||||
|
||||
- let role = wmClass || `${icon}`;
|
||||
+ const role = `${icon}`;
|
||||
Main.panel.addToStatusArea(role, button);
|
||||
}
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
267
SOURCES/desktop-icons-touch-support.patch
Normal file
267
SOURCES/desktop-icons-touch-support.patch
Normal file
@ -0,0 +1,267 @@
|
||||
From bcbf9709802e7644c5911615dabdee7d8ca07719 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Mon, 31 May 2021 19:29:34 +0200
|
||||
Subject: [PATCH 1/3] desktopManager: Handle TOUCH_UPDATE/END events explicitly
|
||||
for rubberband
|
||||
|
||||
These events need specific handling for Wayland, as we do not get emulated
|
||||
pointer events in that platform. Handle these for rubberband selection.
|
||||
---
|
||||
extensions/desktop-icons/desktopManager.js | 67 ++++++++++++++++------
|
||||
1 file changed, 48 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/extensions/desktop-icons/desktopManager.js b/extensions/desktop-icons/desktopManager.js
|
||||
index 399aee0..a70cd98 100644
|
||||
--- a/extensions/desktop-icons/desktopManager.js
|
||||
+++ b/extensions/desktop-icons/desktopManager.js
|
||||
@@ -130,26 +130,49 @@ var DesktopManager = GObject.registerClass({
|
||||
}
|
||||
[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));
|
||||
- }
|
||||
+ this._updateSelection(x, y);
|
||||
});
|
||||
+ this._rubberBandTouchId = global.stage.connect('touch-event', (actor, event) => {
|
||||
+ // Let x11 pointer emulation do the job on X11
|
||||
+ if (!Meta.is_wayland_compositor())
|
||||
+ return Clutter.EVENT_PROPAGATE;
|
||||
+ if (!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
|
||||
+ return Clutter.EVENT_PROPAGATE;
|
||||
+
|
||||
+ if (event.type() == Clutter.EventType.TOUCH_END) {
|
||||
+ this.endRubberBand();
|
||||
+ return Clutter.EVENT_STOP;
|
||||
+ } else if (event.type() == Clutter.EventType.TOUCH_UPDATE) {
|
||||
+ [x, y] = event.get_coords();
|
||||
+ this._updateRubberBand(x, y);
|
||||
+ this._updateSelection(x, y);
|
||||
+ return Clutter.EVENT_STOP;
|
||||
+ }
|
||||
+
|
||||
+ return Clutter.EVENT_PROPAGATE;
|
||||
+ });
|
||||
+ }
|
||||
+
|
||||
+ _updateSelection(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() {
|
||||
@@ -157,8 +180,10 @@ var DesktopManager = GObject.registerClass({
|
||||
Extension.lockActivitiesButton = false;
|
||||
this._grabHelper.ungrab();
|
||||
global.stage.disconnect(this._rubberBandId);
|
||||
+ global.stage.disconnect(this._rubberBandTouchId);
|
||||
global.stage.disconnect(this._stageReleaseEventId);
|
||||
this._rubberBandId = 0;
|
||||
+ this._rubberBandTouchId = 0;
|
||||
this._stageReleaseEventId = 0;
|
||||
|
||||
this._selection = new Set([...this._selection, ...this._currentSelection]);
|
||||
@@ -739,6 +764,10 @@ var DesktopManager = GObject.registerClass({
|
||||
global.stage.disconnect(this._rubberBandId);
|
||||
this._rubberBandId = 0;
|
||||
|
||||
+ if (this._rubberBandTouchId)
|
||||
+ global.stage.disconnect(this._rubberBandTouchId);
|
||||
+ this._rubberBandTouchId = 0;
|
||||
+
|
||||
this._rubberBand.destroy();
|
||||
|
||||
if (this._queryFileInfoCancellable)
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
||||
From 0733004ffeb517f7a80ff41e7181027e8b92b17e Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Mon, 31 May 2021 19:31:03 +0200
|
||||
Subject: [PATCH 2/3] desktopGrid: Handle TOUCH_BEGIN events explicitly
|
||||
|
||||
We do not get pointer emulated events on Wayland, so touch events should
|
||||
be handled explicitly there. Handle starting rubberband selection via
|
||||
touch.
|
||||
---
|
||||
extensions/desktop-icons/desktopGrid.js | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/extensions/desktop-icons/desktopGrid.js b/extensions/desktop-icons/desktopGrid.js
|
||||
index 94d2dfd..602fa7f 100644
|
||||
--- a/extensions/desktop-icons/desktopGrid.js
|
||||
+++ b/extensions/desktop-icons/desktopGrid.js
|
||||
@@ -21,6 +21,7 @@ const Clutter = imports.gi.Clutter;
|
||||
const St = imports.gi.St;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
+const Meta = imports.gi.Meta;
|
||||
const Shell = imports.gi.Shell;
|
||||
|
||||
const Signals = imports.signals;
|
||||
@@ -123,6 +124,7 @@ var DesktopGrid = class {
|
||||
() => this._backgroundDestroyed());
|
||||
|
||||
this._grid.connect('button-press-event', (actor, event) => this._onPressButton(actor, event));
|
||||
+ this._grid.connect('touch-event', (actor, event) => this._onTouchEvent(actor, event));
|
||||
|
||||
this._grid.connect('key-press-event', this._onKeyPress.bind(this));
|
||||
|
||||
@@ -506,6 +508,23 @@ var DesktopGrid = class {
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
|
||||
+ _onTouchEvent(actor, event) {
|
||||
+ // Let x11 pointer emulation do the job on X11
|
||||
+ if (!Meta.is_wayland_compositor())
|
||||
+ return Clutter.EVENT_PROPAGATE;
|
||||
+
|
||||
+ if (event.type() == Clutter.EventType.TOUCH_BEGIN &&
|
||||
+ global.display.is_pointer_emulating_sequence(event.get_event_sequence())) {
|
||||
+ Extension.desktopManager.clearSelection();
|
||||
+ let [x, y] = event.get_coords();
|
||||
+ let [gridX, gridY] = this._grid.get_transformed_position();
|
||||
+ Extension.desktopManager.startRubberBand(x, y, gridX, gridY);
|
||||
+ return Clutter.EVENT_STOP;
|
||||
+ }
|
||||
+
|
||||
+ return Clutter.EVENT_PROPAGATE;
|
||||
+ }
|
||||
+
|
||||
_addDesktopBackgroundMenu() {
|
||||
this.actor._desktopBackgroundMenu = this._createDesktopBackgroundMenu();
|
||||
this.actor._desktopBackgroundManager = new PopupMenu.PopupMenuManager({ actor: this.actor });
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
||||
From 2d978ffc58562c4f4d00b1afb03da58be3102e29 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Mon, 31 May 2021 19:31:50 +0200
|
||||
Subject: [PATCH 3/3] fileItem: Handle (multi) touch explicitly via touch
|
||||
events
|
||||
|
||||
Wayland does not get pointer emulated events, so we must handle TOUCH_BEGIN/
|
||||
END here for file clicking/tapping to work there.
|
||||
---
|
||||
extensions/desktop-icons/fileItem.js | 34 ++++++++++++++++++++++++----
|
||||
1 file changed, 30 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
|
||||
index 143cb9b..1cb47e8 100644
|
||||
--- a/extensions/desktop-icons/fileItem.js
|
||||
+++ b/extensions/desktop-icons/fileItem.js
|
||||
@@ -117,6 +117,7 @@ var FileItem = class {
|
||||
this._container.connect('motion-event', (actor, event) => this._onMotion(actor, event));
|
||||
this._container.connect('leave-event', (actor, event) => this._onLeave(actor, event));
|
||||
this._container.connect('button-release-event', (actor, event) => this._onReleaseButton(actor, event));
|
||||
+ this._container.connect('touch-event', (actor, event) => this._onTouchEvent(actor, event));
|
||||
|
||||
/* Set the metadata and update relevant UI */
|
||||
this._updateMetadataFromFileInfo(fileInfo);
|
||||
@@ -648,16 +649,26 @@ var FileItem = class {
|
||||
DesktopIconsUtil.launchTerminal(this.file.get_path());
|
||||
}
|
||||
|
||||
+ _eventButton(event) {
|
||||
+ // Emulate button1 press on touch events
|
||||
+ if (event.type() == Clutter.EventType.TOUCH_BEGIN ||
|
||||
+ event.type() == Clutter.EventType.TOUCH_END ||
|
||||
+ event.type() == Clutter.EventType.TOUCH_UPDATE)
|
||||
+ return 1;
|
||||
+
|
||||
+ return event.get_button();
|
||||
+ }
|
||||
+
|
||||
_updateClickState(event) {
|
||||
let settings = Clutter.Settings.get_default();
|
||||
- if ((event.get_button() == this._lastClickButton) &&
|
||||
+ if ((this._eventButton(event) == this._lastClickButton) &&
|
||||
((event.get_time() - this._lastClickTime) < settings.double_click_time))
|
||||
this._clickCount++;
|
||||
else
|
||||
this._clickCount = 1;
|
||||
|
||||
this._lastClickTime = event.get_time();
|
||||
- this._lastClickButton = event.get_button();
|
||||
+ this._lastClickButton = this._eventButton(event);
|
||||
}
|
||||
|
||||
_getClickCount() {
|
||||
@@ -666,7 +677,7 @@ var FileItem = class {
|
||||
|
||||
_onPressButton(actor, event) {
|
||||
this._updateClickState(event);
|
||||
- let button = event.get_button();
|
||||
+ let button = this._eventButton(event);
|
||||
if (button == 3) {
|
||||
if (!this.isSelected)
|
||||
this.emit('selected', false, false, true);
|
||||
@@ -725,7 +736,7 @@ var FileItem = class {
|
||||
}
|
||||
|
||||
_onReleaseButton(actor, event) {
|
||||
- let button = event.get_button();
|
||||
+ let button = this._eventButton(event);
|
||||
if (button == 1) {
|
||||
// primaryButtonPressed is TRUE only if the user has pressed the button
|
||||
// over an icon, and if (s)he has not started a drag&drop operation
|
||||
@@ -744,6 +755,21 @@ var FileItem = class {
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
|
||||
+ _onTouchEvent(actor, event) {
|
||||
+ // Let x11 pointer emulation do the job on X11
|
||||
+ if (!Meta.is_wayland_compositor())
|
||||
+ return Clutter.EVENT_PROPAGATE;
|
||||
+ if (!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
|
||||
+ return Clutter.EVENT_PROPAGATE;
|
||||
+
|
||||
+ if (event.type() == Clutter.EventType.TOUCH_BEGIN)
|
||||
+ this._onPressButton(actor, event);
|
||||
+ else if (event.type() == Clutter.EventType.TOUCH_UPDATE)
|
||||
+ this._onMotion(actor, event);
|
||||
+ else if (event.type() == Clutter.EventType.TOUCH_END)
|
||||
+ this._onReleaseButton(actor, event);
|
||||
+ }
|
||||
+
|
||||
get savedCoordinates() {
|
||||
return this._savedCoordinates;
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
Name: gnome-shell-extensions
|
||||
Version: 3.32.1
|
||||
Release: 15%{?dist}
|
||||
Release: 19%{?dist}
|
||||
Summary: Modify and extend GNOME Shell functionality and behavior
|
||||
|
||||
Group: User Interface/Desktops
|
||||
@ -41,6 +41,10 @@ Patch0012: 0001-desktop-icons-Update-Japanese-translation.patch
|
||||
Patch0013: 0001-fileItem-Ignore-double-click-distance-clicking-on-it.patch
|
||||
Patch0014: 0001-window-list-Leave-fake-overview-when-destroyed.patch
|
||||
Patch0015: add-workspace-tooltips.patch
|
||||
Patch0016: 0001-general-launch-only-executable-files.patch
|
||||
Patch0017: desktop-icons-touch-support.patch
|
||||
Patch0018: 0001-Add-gesture-inhibitor-extension.patch
|
||||
Patch0019: 0001-top-icons-Don-t-use-wm_class-as-role.patch
|
||||
|
||||
%description
|
||||
GNOME Shell Extensions is a collection of extensions providing additional and
|
||||
@ -52,6 +56,7 @@ Enabled extensions:
|
||||
* dash-to-dock
|
||||
* disable-screenshield
|
||||
* desktop-icons
|
||||
* gesture-inhibitor
|
||||
* horizontal-workspaces
|
||||
* drive-menu
|
||||
* launch-new-instance
|
||||
@ -192,6 +197,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
|
||||
Group: User Interface/Desktops
|
||||
@ -411,6 +426,11 @@ cp $RPM_SOURCE_DIR/gnome-classic.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
|
||||
%{_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*/
|
||||
|
||||
@ -474,6 +494,22 @@ cp $RPM_SOURCE_DIR/gnome-classic.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Jun 02 2021 Florian Müllner <fmuellner@redhat.com> - 3.32.1-19
|
||||
- Don't use status icon wm_class as top bar role
|
||||
Resolves: #1897932
|
||||
|
||||
* Tue Jun 01 2021 Carlos Garnacho <cgarnach@redhat.com> - 3.32.1-18
|
||||
- Add gesture-inhibitor extension
|
||||
Resolves: #1854679
|
||||
|
||||
* Tue Jun 01 2021 Carlos Garnacho <cgarnach@redhat.com> - 3.32.1-17
|
||||
- Handle touchscreens on Wayland in the desktop-icons extension
|
||||
Resolves: #1924725
|
||||
|
||||
* Mon May 31 2021 Florian Müllner <fmuellner@redhat.com> - 3.32.1-16
|
||||
- Fix opening files with (wrongly) set executable bit
|
||||
Resolves: #1813727
|
||||
|
||||
* Tue Apr 13 2021 Florian Müllner <fmuellner@redhat.com> - 3.32.1-15
|
||||
- Fix stuck window picker after screen lock
|
||||
Resolves: #1905000
|
||||
|
Loading…
Reference in New Issue
Block a user