[gnome-shell/wip/carlosg/osk-gesture-feedback: 31/32] keyboard: Make OSK follow gesture progress
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/carlosg/osk-gesture-feedback: 31/32] keyboard: Make OSK follow gesture progress
- Date: Wed, 17 Feb 2021 15:45:05 +0000 (UTC)
commit c62177e669ae6818fcd6d7f6c545606e290e6139
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Feb 12 00:54:55 2021 +0100
keyboard: Make OSK follow gesture progress
With all other gestures offering live feedback of progress, seems
to make sense to update the "swipe from bottom edge to show OSK"
gesture as well.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1668>
js/ui/keyboard.js | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index ae3cdd35c2..50a1cd7f44 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -1148,7 +1148,10 @@ 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.open(Main.layoutManager.bottomIndex);
+ this._keyboard.gestureActivate(Main.layoutManager.bottomIndex);
+ });
+ bottomDragAction.connect('progress', (_action, progress) => {
+ this._keyboard.gestureProgress(progress);
});
global.stage.add_action(bottomDragAction);
this._bottomDragAction = bottomDragAction;
@@ -1725,7 +1728,7 @@ var Keyboard = GObject.registerClass({
this._keyboardRestingId = 0;
}
- open() {
+ open(immediate = false) {
this._clearShowIdle();
this._keyboardRequested = true;
@@ -1734,6 +1737,11 @@ var Keyboard = GObject.registerClass({
return;
}
+ if (immediate) {
+ this._open();
+ return;
+ }
+
this._clearKeyboardRestTimer();
this._keyboardRestingId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
KEYBOARD_REST_TIME,
@@ -1835,6 +1843,21 @@ var Keyboard = GObject.registerClass({
Main.layoutManager.keyboardBox.hide();
}
+ gestureProgress(delta) {
+ Main.layoutManager.keyboardBox.show();
+ let progress = Math.min(delta, this.height) / this.height;
+ this.translation_y = -this.height * progress;
+ this.opacity = 255 * progress;
+ if (this._focusWindow) {
+ const windowActor = this._focusWindow.get_compositor_private();
+ windowActor.translation_y = -this.height * progress;
+ }
+ }
+
+ gestureActivate() {
+ this.open(true);
+ }
+
resetSuggestions() {
if (this._suggestions)
this._suggestions.clear();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]