windowManager: Move OSK gesture to KeyboardManager

It would be nice to get finer control over the keyboard slide
gesture and animation. Move the gesture bits so they are together
at keyboard.js.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1668>
This commit is contained in:
Carlos Garnacho 2021-02-11 13:41:16 +01:00 committed by Marge Bot
parent f52cafeb4a
commit 0580fe6eff
2 changed files with 14 additions and 11 deletions

View File

@ -1,10 +1,11 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported KeyboardManager */
const { Clutter, Gio, GLib, GObject, Meta, St } = imports.gi;
const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const ByteArray = imports.byteArray;
const Signals = imports.signals;
const EdgeDragAction = imports.ui.edgeDragAction;
const InputSourceManager = imports.ui.status.keyboard;
const IBusManager = imports.misc.ibusManager;
const BoxPointer = imports.ui.boxpointer;
@ -1143,6 +1144,18 @@ var KeyboardManager = class KeyBoardManager {
this._lastDevice = device;
this._syncEnabled();
});
const mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
const bottomDragAction = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
bottomDragAction.connect('activated', () => {
this.open(Main.layoutManager.bottomIndex);
});
Main.layoutManager.connect('keyboard-visible-changed', (_manager, visible) => {
bottomDragAction.cancel();
bottomDragAction.set_enabled(!visible);
});
global.stage.add_action(bottomDragAction);
this._syncEnabled();
}

View File

@ -932,16 +932,6 @@ var WindowManager = class {
global.stage.add_action(appSwitchAction);
let mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
let bottomDragAction = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
bottomDragAction.connect('activated', () => {
Main.keyboard.open(Main.layoutManager.bottomIndex);
});
Main.layoutManager.connect('keyboard-visible-changed', (manager, visible) => {
bottomDragAction.cancel();
bottomDragAction.set_enabled(!visible);
});
global.stage.add_action(bottomDragAction);
let topDragAction = new EdgeDragAction.EdgeDragAction(St.Side.TOP, mode);
topDragAction.connect('activated', () => {
let currentWindow = global.display.focus_window;