From 118cab176623ced5d169d8363d4f4c6433d8c21f Mon Sep 17 00:00:00 2001 From: Erik Duxstad Date: Mon, 5 Nov 2018 17:13:26 -0600 Subject: [PATCH] windowManager: make TouchpadWorkspaceSwitchAction respect natural-scroll Instead of defaulting to a natural scroll behavior, have the workspace switch action use the natural-scroll setting in org.gnome.peripherals.touchpad to determine the correct direction of travel when swiping. 4 finger swipes will then match the behavior of the rest of the UI. Reference: https://gitlab.gnome.org/GNOME/gnome-shell/issues/516 --- js/ui/windowManager.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 09270914e..fedee72d5 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -478,6 +478,7 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({ this._dx = 0; this._dy = 0; actor.connect('captured-event', this._handleEvent.bind(this)); + this._touchpadSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.peripherals.touchpad'}); }, _checkActivated() { @@ -515,7 +516,11 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({ // Scale deltas up a bit to make it feel snappier this._dx += dx * 2; - this._dy += dy * 2; + if(!(this._touchpadSettings.get_boolean('natural-scroll'))) + this._dy -= dy * 2; + else + this._dy += dy * 2; + this.emit('motion', this._dx, this._dy); } else { if ((event.get_gesture_phase() == Clutter.TouchpadGesturePhase.END && ! this._checkActivated()) ||