system: Keep key focus when switching between alternatives
When switching between alternatives in AltSwitcher, the currently visible child is replaced with the alternative. If the original child has the key focus when it is removed from the stage, the focus is lost. Detect this case and manually move the focus to the new child. https://bugzilla.gnome.org/show_bug.cgi?id=727259
This commit is contained in:
parent
caf6389f79
commit
011fef4b2b
@ -56,7 +56,10 @@ const AltSwitcher = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.actor.get_child() != childToShow) {
|
if (this.actor.get_child() != childToShow) {
|
||||||
|
let hasFocus = this.actor.contains(global.stage.get_key_focus());
|
||||||
this.actor.set_child(childToShow);
|
this.actor.set_child(childToShow);
|
||||||
|
if (hasFocus)
|
||||||
|
childToShow.grab_key_focus();
|
||||||
|
|
||||||
// The actors might respond to hover, so
|
// The actors might respond to hover, so
|
||||||
// sync the pointer to make sure they update.
|
// sync the pointer to make sure they update.
|
||||||
|
Loading…
Reference in New Issue
Block a user