keyboard: Reset latched levels on string commit on all situations

The _commitAction() paths have early returns, which made resetting the
latched mode inconsistent depending on the paths taken to commit the
string. This made latched modes not return to normal on e.g. Shell
entries.

Make this happen outside the function, and after the only calling
point, so that the level is correctly reset on all situations.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2945>
This commit is contained in:
Carlos Garnacho 2023-09-08 18:51:34 +02:00
parent 671df28a50
commit 08f3ad3835

View File

@ -1533,7 +1533,10 @@ export const Keyboard = GObject.registerClass({
if (key.action !== 'modifier') {
button.connect('commit', (_actor, keyval, str) => {
this._commitAction(keyval, str);
this._commitAction(keyval, str).then(() => {
if (!this._latched)
this._setActiveLayer(0);
});
});
}
@ -1613,9 +1616,6 @@ export const Keyboard = GObject.registerClass({
});
}
}
if (!this._latched)
this._setActiveLayer(0);
}
_previousWordPosition(text, cursor) {