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
This commit is contained in:
Florian Müllner 2019-03-20 17:03:27 +00:00 committed by Florian Müllner
parent de6512be1a
commit e83f2344f6

View File

@ -459,10 +459,24 @@ var TouchpadWorkspaceSwitchAction = class {
constructor(actor) { constructor(actor) {
this._dx = 0; this._dx = 0;
this._dy = 0; this._dy = 0;
this._enabled = true;
actor.connect('captured-event', this._handleEvent.bind(this)); actor.connect('captured-event', this._handleEvent.bind(this));
this._touchpadSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.peripherals.touchpad'}); 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() { _checkActivated() {
let dir; let dir;
@ -493,6 +507,9 @@ var TouchpadWorkspaceSwitchAction = class {
if ((allowedModes & Main.actionMode) == 0) if ((allowedModes & Main.actionMode) == 0)
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
if (!this._enabled)
return Clutter.EVENT_PROPAGATE;
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) { if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
let [dx, dy] = event.get_gesture_motion_delta(); let [dx, dy] = event.get_gesture_motion_delta();