keyboard: Handle edge drag gesture cancellation
Hide the keyboard again if the gesture happens to stay/return within it's activation threshold. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1668>
This commit is contained in:

committed by
Marge Bot

parent
c62177e669
commit
0b16565e70
@ -1148,10 +1148,16 @@ var KeyboardManager = class KeyBoardManager {
|
||||
const mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
|
||||
const bottomDragAction = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
|
||||
bottomDragAction.connect('activated', () => {
|
||||
this._keyboard.gestureActivate(Main.layoutManager.bottomIndex);
|
||||
if (this._keyboard)
|
||||
this._keyboard.gestureActivate(Main.layoutManager.bottomIndex);
|
||||
});
|
||||
bottomDragAction.connect('progress', (_action, progress) => {
|
||||
this._keyboard.gestureProgress(progress);
|
||||
if (this._keyboard)
|
||||
this._keyboard.gestureProgress(progress);
|
||||
});
|
||||
bottomDragAction.connect('gesture-cancel', () => {
|
||||
if (this._keyboard)
|
||||
this._keyboard.gestureCancel();
|
||||
});
|
||||
global.stage.add_action(bottomDragAction);
|
||||
this._bottomDragAction = bottomDragAction;
|
||||
@ -1844,6 +1850,7 @@ var Keyboard = GObject.registerClass({
|
||||
}
|
||||
|
||||
gestureProgress(delta) {
|
||||
this._gestureInProgress = true;
|
||||
Main.layoutManager.keyboardBox.show();
|
||||
let progress = Math.min(delta, this.height) / this.height;
|
||||
this.translation_y = -this.height * progress;
|
||||
@ -1856,6 +1863,13 @@ var Keyboard = GObject.registerClass({
|
||||
|
||||
gestureActivate() {
|
||||
this.open(true);
|
||||
this._gestureInProgress = false;
|
||||
}
|
||||
|
||||
gestureCancel() {
|
||||
if (this._gestureInProgress)
|
||||
this.animateHide();
|
||||
this._gestureInProgress = false;
|
||||
}
|
||||
|
||||
resetSuggestions() {
|
||||
|
Reference in New Issue
Block a user