status/keyboard: Allow switching input source in the message tray
We still can't show a popup switcher in the message tray but we can at least degrade gracefully and advance to the next input source. https://bugzilla.gnome.org/show_bug.cgi?id=697009
This commit is contained in:
parent
d45ab6f15e
commit
3ce20568d0
@ -356,14 +356,14 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
Main.wm.addKeybinding('switch-input-source',
|
Main.wm.addKeybinding('switch-input-source',
|
||||||
new Gio.Settings({ schema: "org.gnome.desktop.wm.keybindings" }),
|
new Gio.Settings({ schema: "org.gnome.desktop.wm.keybindings" }),
|
||||||
Meta.KeyBindingFlags.REVERSES,
|
Meta.KeyBindingFlags.REVERSES,
|
||||||
Shell.KeyBindingMode.ALL & ~Shell.KeyBindingMode.MESSAGE_TRAY,
|
Shell.KeyBindingMode.ALL,
|
||||||
Lang.bind(this, this._switchInputSource));
|
Lang.bind(this, this._switchInputSource));
|
||||||
this._keybindingActionBackward =
|
this._keybindingActionBackward =
|
||||||
Main.wm.addKeybinding('switch-input-source-backward',
|
Main.wm.addKeybinding('switch-input-source-backward',
|
||||||
new Gio.Settings({ schema: "org.gnome.desktop.wm.keybindings" }),
|
new Gio.Settings({ schema: "org.gnome.desktop.wm.keybindings" }),
|
||||||
Meta.KeyBindingFlags.REVERSES |
|
Meta.KeyBindingFlags.REVERSES |
|
||||||
Meta.KeyBindingFlags.REVERSED,
|
Meta.KeyBindingFlags.REVERSED,
|
||||||
Shell.KeyBindingMode.ALL & ~Shell.KeyBindingMode.MESSAGE_TRAY,
|
Shell.KeyBindingMode.ALL,
|
||||||
Lang.bind(this, this._switchInputSource));
|
Lang.bind(this, this._switchInputSource));
|
||||||
this._settings = new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_SCHEMA });
|
this._settings = new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_SCHEMA });
|
||||||
this._settings.connect('changed::' + KEY_CURRENT_INPUT_SOURCE, Lang.bind(this, this._currentInputSourceChanged));
|
this._settings.connect('changed::' + KEY_CURRENT_INPUT_SOURCE, Lang.bind(this, this._currentInputSourceChanged));
|
||||||
@ -451,6 +451,17 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
if (this._mruSources.length < 2)
|
if (this._mruSources.length < 2)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// HACK: Fall back on simple input source switching since we
|
||||||
|
// can't show a popup switcher while a GrabHelper grab is in
|
||||||
|
// effect without considerable work to consolidate the usage
|
||||||
|
// of pushModal/popModal and grabHelper. See
|
||||||
|
// https://bugzilla.gnome.org/show_bug.cgi?id=695143 .
|
||||||
|
if (Main.keybindingMode == Shell.KeyBindingMode.MESSAGE_TRAY ||
|
||||||
|
Main.keybindingMode == Shell.KeyBindingMode.TOPBAR_POPUP) {
|
||||||
|
this._modifiersSwitcher();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let popup = new InputSourcePopup(this._mruSources, this._keybindingAction, this._keybindingActionBackward);
|
let popup = new InputSourcePopup(this._mruSources, this._keybindingAction, this._keybindingActionBackward);
|
||||||
let modifiers = binding.get_modifiers();
|
let modifiers = binding.get_modifiers();
|
||||||
let backwards = modifiers & Meta.VirtualModifier.SHIFT_MASK;
|
let backwards = modifiers & Meta.VirtualModifier.SHIFT_MASK;
|
||||||
|
Loading…
Reference in New Issue
Block a user