[gnome-shell/wip/carlosg/osk-updates: 6/27] keyboard: Handle OSK level changes on button release
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/carlosg/osk-updates: 6/27] keyboard: Handle OSK level changes on button release
- Date: Mon, 25 Jul 2022 22:08:50 +0000 (UTC)
commit cf050b0d6cce429dab894371fc736a256d4edf79
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Apr 15 19:47:09 2022 +0200
keyboard: Handle OSK level changes on button release
Keep it consistent with the rest of the actions. This also means
the release should be cancelled after long press. Since we used to
hide the button being pressed on modifier changes, and it never
got a paired release, this also fixes spurious long-press signals
being emitted on pointers.
js/ui/keyboard.js | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index fecda5d460..f7395fd6cb 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -1513,21 +1513,21 @@ var Keyboard = GObject.registerClass({
if (!this._latched)
this._setActiveLayer(0);
});
- button.connect('pressed', () => {
- if (key.action === 'levelSwitch') {
- this._setActiveLayer(key.level);
- this._setLatched (
- key.level === 1 &&
- key.iconName === 'keyboard-caps-lock-symbolic');
- }
- });
button.connect('released', () => {
- if (key.action === 'hide')
+ if (key.action === 'hide') {
this.close();
- else if (key.action === 'languageMenu')
+ } else if (key.action === 'languageMenu') {
this._popupLanguageMenu(button);
- else if (key.action === 'emoji')
+ } else if (key.action === 'emoji') {
this._toggleEmoji();
+ } else if (!this._longPressed && key.action === 'levelSwitch') {
+ this._setActiveLayer(key.level);
+ this._setLatched(
+ key.level === 1 &&
+ key.iconName === 'keyboard-caps-lock-symbolic');
+ }
+
+ this._longPressed = null;
});
if (key.action === 'levelSwitch' &&
@@ -1535,7 +1535,9 @@ var Keyboard = GObject.registerClass({
layout.shiftKeys.push(button);
if (key.level === 1) {
button.connect('long-press', () => {
+ this._setActiveLayer(key.level);
this._setLatched(true);
+ this._longPressed = true;
});
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]