parent
							
								
									513e562939
								
							
						
					
					
						commit
						5363aa6828
					
				
							
								
								
									
										186
									
								
								0001-Add-gesture-inhibitor-extension.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										186
									
								
								0001-Add-gesture-inhibitor-extension.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,186 @@ | ||||
| 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] 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.32.0 | ||||
| 
 | ||||
| @ -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 <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 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user