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 | Name:           gnome-shell-extensions | ||||||
| Version:        40.4 | Version:        40.4 | ||||||
| Release:        2%{?dist} | Release:        3%{?dist} | ||||||
| Summary:        Modify and extend GNOME Shell functionality and behavior | Summary:        Modify and extend GNOME Shell functionality and behavior | ||||||
| 
 | 
 | ||||||
| License:        GPLv2+ | License:        GPLv2+ | ||||||
| @ -30,6 +30,7 @@ Patch007: 0001-desktop-icons-Update-Japanese-translation.patch | |||||||
| Patch008: desktop-icons-40-fixes.patch | Patch008: desktop-icons-40-fixes.patch | ||||||
| Patch009: 0001-top-icons-Don-t-use-wm_class-as-role.patch | Patch009: 0001-top-icons-Don-t-use-wm_class-as-role.patch | ||||||
| Patch010: 0001-heads-up-display-Add-extension-for-showing-persisten.patch | Patch010: 0001-heads-up-display-Add-extension-for-showing-persisten.patch | ||||||
|  | Patch011: 0001-Add-gesture-inhibitor-extension.patch | ||||||
| 
 | 
 | ||||||
| %description | %description | ||||||
| GNOME Shell Extensions is a collection of extensions providing additional and | GNOME Shell Extensions is a collection of extensions providing additional and | ||||||
| @ -41,6 +42,7 @@ Enabled extensions: | |||||||
|   * dash-to-dock |   * dash-to-dock | ||||||
|   * desktop-icons |   * desktop-icons | ||||||
|   * drive-menu |   * drive-menu | ||||||
|  |   * gesture-inhibitor | ||||||
|   * launch-new-instance |   * launch-new-instance | ||||||
|   * heads-up-display |   * heads-up-display | ||||||
|   * native-window-placement |   * native-window-placement | ||||||
| @ -131,6 +133,16 @@ This GNOME Shell extension provides a panel status menu for accessing and | |||||||
| unmounting removable devices. | 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 | %package -n %{pkg_prefix}-launch-new-instance | ||||||
| Summary:        Always launch a new application instance for GNOME Shell | Summary:        Always launch a new application instance for GNOME Shell | ||||||
| License:        GPLv2+ | License:        GPLv2+ | ||||||
| @ -308,6 +320,11 @@ workspaces. | |||||||
| %{_datadir}/gnome-shell/extensions/drive-menu*/ | %{_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 | %files -n %{pkg_prefix}-launch-new-instance | ||||||
| %{_datadir}/gnome-shell/extensions/launch-new-instance*/ | %{_datadir}/gnome-shell/extensions/launch-new-instance*/ | ||||||
| 
 | 
 | ||||||
| @ -367,6 +384,10 @@ workspaces. | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %changelog | %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 | * Mon Sep 27 2021 Ray Strode <rstrode@redhat.com> - 40.4-2 | ||||||
| - Add extension for displaying heads up message | - Add extension for displaying heads up message | ||||||
|   Related: #2006985 |   Related: #2006985 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user