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:
parent
f8ce788425
commit
ef9f63fe59
@ -201,6 +201,7 @@ const Keyboard = new Lang.Class({
|
|||||||
|
|
||||||
this.actor = null;
|
this.actor = null;
|
||||||
this._focusInTray = false;
|
this._focusInTray = false;
|
||||||
|
this._focusInExtendedKeys = false;
|
||||||
|
|
||||||
this._timestamp = global.display.get_current_time_roundtrip();
|
this._timestamp = global.display.get_current_time_roundtrip();
|
||||||
Main.layoutManager.connect('monitors-changed', Lang.bind(this, this._redraw));
|
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
|
// Showing an extended key popup and clicking a key from the extended keys
|
||||||
// will grab focus, but ignore that
|
// 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;
|
return;
|
||||||
|
|
||||||
// Ignore focus changes caused by message tray showing/hiding
|
// Ignore focus changes caused by message tray showing/hiding
|
||||||
|
Loading…
Reference in New Issue
Block a user