diff --git a/0001-Add-gesture-inhibitor-extension.patch b/0001-Add-gesture-inhibitor-extension.patch new file mode 100644 index 0000000..84b405d --- /dev/null +++ b/0001-Add-gesture-inhibitor-extension.patch @@ -0,0 +1,186 @@ +From e27d37b9efed5f1266c6b27520a4698e9eb9d453 Mon Sep 17 00:00:00 2001 +From: 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 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 . ++ * ++ * 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 @@ ++ ++ ++ ++ true ++ Show app grid gesture ++ ++ ++ true ++ Show OSK gesture ++ ++ ++ true ++ Show Overview gesture ++ ++ ++ true ++ Application switch gesture ++ ++ ++ true ++ Unfullscreen gesture ++ ++ ++ ++ +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.32.0 + diff --git a/gnome-shell-extensions.spec b/gnome-shell-extensions.spec index 5f7be9e..9631670 100644 --- a/gnome-shell-extensions.spec +++ b/gnome-shell-extensions.spec @@ -7,7 +7,7 @@ Name: gnome-shell-extensions Version: 40.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Modify and extend GNOME Shell functionality and behavior License: GPLv2+ @@ -30,6 +30,7 @@ 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 %description GNOME Shell Extensions is a collection of extensions providing additional and @@ -41,6 +42,7 @@ Enabled extensions: * dash-to-dock * desktop-icons * drive-menu + * gesture-inhibitor * launch-new-instance * heads-up-display * native-window-placement @@ -131,6 +133,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+ @@ -308,6 +320,11 @@ 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*/ @@ -367,6 +384,10 @@ workspaces. %changelog +* Wed Oct 20 2021 Florian Müllner - 40.4-3 +- Add gesture-inhibitor extension + Resolves: #2013196 + * Mon Sep 27 2021 Ray Strode - 40.4-2 - Add extension for displaying heads up message Related: #2006985