From e83f2344f60abd4f2fce68a89bf393bf4bcc7a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 20 Mar 2019 17:03:27 +0000 Subject: [PATCH] windowManager: Allow disabling touchpad workspace switch action Just like actual ClutterActions, it can make sense to temporarily disable the touchpad action, so add an appropriate property. https://gitlab.gnome.org/GNOME/gnome-shell/issues/516 --- js/ui/windowManager.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index ea9493d6f..683a876f1 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -459,10 +459,24 @@ var TouchpadWorkspaceSwitchAction = class { constructor(actor) { this._dx = 0; this._dy = 0; + this._enabled = true; actor.connect('captured-event', this._handleEvent.bind(this)); this._touchpadSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.peripherals.touchpad'}); } + get enabled() { + return this._enabled; + } + + set enabled(enabled) { + if (this._enabled == enabled) + return; + + this._enabled = enabled; + if (!enabled) + this.emit('cancel'); + } + _checkActivated() { let dir; @@ -493,6 +507,9 @@ var TouchpadWorkspaceSwitchAction = class { if ((allowedModes & Main.actionMode) == 0) return Clutter.EVENT_PROPAGATE; + if (!this._enabled) + return Clutter.EVENT_PROPAGATE; + if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) { let [dx, dy] = event.get_gesture_motion_delta();