keyboard: Figure out keypad visibility through purpose hints
Drop the keypad-visible KeyController signal, and figure it out through the already notified purpose hint. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3162>
This commit is contained in:
parent
4a4582b76c
commit
3f6f2f2376
@ -1406,7 +1406,6 @@ export const Keyboard = GObject.registerClass({
|
|||||||
'groups-changed', this._onKeyboardGroupsChanged.bind(this),
|
'groups-changed', this._onKeyboardGroupsChanged.bind(this),
|
||||||
'panel-state', this._onKeyboardStateChanged.bind(this),
|
'panel-state', this._onKeyboardStateChanged.bind(this),
|
||||||
'purpose-changed', this._onPurposeChanged.bind(this),
|
'purpose-changed', this._onPurposeChanged.bind(this),
|
||||||
'keypad-visible', this._onKeypadVisible.bind(this),
|
|
||||||
this);
|
this);
|
||||||
global.stage.connectObject('notify::key-focus',
|
global.stage.connectObject('notify::key-focus',
|
||||||
this._onKeyFocusChanged.bind(this), this);
|
this._onKeyFocusChanged.bind(this), this);
|
||||||
@ -1458,6 +1457,11 @@ export const Keyboard = GObject.registerClass({
|
|||||||
y_expand: true,
|
y_expand: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (purpose === Clutter.InputContentPurpose.DIGITS ||
|
||||||
|
purpose === Clutter.InputContentPurpose.NUMBER ||
|
||||||
|
purpose === Clutter.InputContentPurpose.PHONE) {
|
||||||
|
this._onKeypadVisible(null, true);
|
||||||
|
} else {
|
||||||
let groups = [groupName];
|
let groups = [groupName];
|
||||||
if (groupName.includes('+'))
|
if (groupName.includes('+'))
|
||||||
groups.push(groupName.replace(/\+.*/, ''));
|
groups.push(groupName.replace(/\+.*/, ''));
|
||||||
@ -1477,6 +1481,9 @@ export const Keyboard = GObject.registerClass({
|
|||||||
if (!keyboardModel)
|
if (!keyboardModel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
this._onKeypadVisible(null, false);
|
||||||
|
}
|
||||||
|
|
||||||
let levels = keyboardModel.getLevels();
|
let levels = keyboardModel.getLevels();
|
||||||
|
|
||||||
for (let i = 0; i < levels.length; i++) {
|
for (let i = 0; i < levels.length; i++) {
|
||||||
@ -2190,20 +2197,14 @@ class KeyboardController extends Signals.EventEmitter {
|
|||||||
_onContentPurposeHintsChanged(method) {
|
_onContentPurposeHintsChanged(method) {
|
||||||
let purpose = method.content_purpose;
|
let purpose = method.content_purpose;
|
||||||
let emojiVisible = false;
|
let emojiVisible = false;
|
||||||
let keypadVisible = false;
|
|
||||||
|
|
||||||
if (purpose === Clutter.InputContentPurpose.NORMAL ||
|
if (purpose === Clutter.InputContentPurpose.NORMAL ||
|
||||||
purpose === Clutter.InputContentPurpose.ALPHA ||
|
purpose === Clutter.InputContentPurpose.ALPHA ||
|
||||||
purpose === Clutter.InputContentPurpose.PASSWORD ||
|
purpose === Clutter.InputContentPurpose.PASSWORD ||
|
||||||
purpose === Clutter.InputContentPurpose.TERMINAL)
|
purpose === Clutter.InputContentPurpose.TERMINAL)
|
||||||
emojiVisible = true;
|
emojiVisible = true;
|
||||||
if (purpose === Clutter.InputContentPurpose.DIGITS ||
|
|
||||||
purpose === Clutter.InputContentPurpose.NUMBER ||
|
|
||||||
purpose === Clutter.InputContentPurpose.PHONE)
|
|
||||||
keypadVisible = true;
|
|
||||||
|
|
||||||
this.emit('emoji-visible', emojiVisible);
|
this.emit('emoji-visible', emojiVisible);
|
||||||
this.emit('keypad-visible', keypadVisible);
|
|
||||||
this.emit('purpose-changed', purpose);
|
this.emit('purpose-changed', purpose);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user