keyboard: Make items in language menu unfocusable

The menu grabs the key focus when opened, which takes focus away from
whichever actor triggered the keyboard. And as the menu doesn't have
any text entries, the keyboard is popped down as a result.

Prevent this by making the menu items unfocusable, so the keyboard
focus just stays where it is. Considering that the menu is part
of the on-screen keyboard itself, not being keyboard-navigatable
isn't a big deal here.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/171
This commit is contained in:
Florian Müllner 2018-09-11 18:00:22 +02:00 committed by Florian Müllner
parent 24a26e025b
commit 7dd326f090

View File

@ -189,16 +189,20 @@ var LanguageSelectionPopup = class extends PopupMenu.PopupMenu {
let inputSourceManager = InputSourceManager.getInputSourceManager();
let inputSources = inputSourceManager.inputSources;
let item;
for (let i in inputSources) {
let is = inputSources[i];
this.addAction(is.displayName, () => {
item = this.addAction(is.displayName, () => {
inputSourceManager.activateInputSource(is, true);
});
item.actor.can_focus = false;
}
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.addSettingsAction(_("Region & Language Settings"), 'gnome-region-panel.desktop');
item = this.addSettingsAction(_("Region & Language Settings"), 'gnome-region-panel.desktop');
item.actor.can_focus = false;
this._capturedEventId = 0;
this._unmapId = actor.connect('notify::mapped', () => {