keyboard: Ignore focus changes from extended keys
The keyboard is shown/hidden automatically when (un)focusing a ClutterText actor. This behavior is unwanted when opening the extended keys popup, so focus changes to the popup are ignored. However, we also want to ignore focus changes from the popup to avoid the keyboard hiding itself after pressing an extended key. https://bugzilla.gnome.org/show_bug.cgi?id=683546
This commit is contained in:
@ -201,6 +201,7 @@ const Keyboard = new Lang.Class({
|
||||
|
||||
this.actor = null;
|
||||
this._focusInTray = false;
|
||||
this._focusInExtendedKeys = false;
|
||||
|
||||
this._timestamp = global.display.get_current_time_roundtrip();
|
||||
Main.layoutManager.connect('monitors-changed', Lang.bind(this, this._redraw));
|
||||
@ -289,7 +290,9 @@ const Keyboard = new Lang.Class({
|
||||
|
||||
// Showing an extended key popup and clicking a key from the extended keys
|
||||
// will grab focus, but ignore that
|
||||
if (focus && (focus._extended_keys || focus.extended_key))
|
||||
let extendedKeysWereFocused = this._focusInExtendedKeys;
|
||||
this._focusInExtendedKeys = focus && (focus._extended_keys || focus.extended_key);
|
||||
if (this._focusInExtendedKeys || extendedKeysWereFocused)
|
||||
return;
|
||||
|
||||
// Ignore focus changes caused by message tray showing/hiding
|
||||
|
Reference in New Issue
Block a user