mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
grabHelper: Track the grab before trying to set key focus
If we don't this for a nested grabFocus grab, the notify::key-focus will be called, not think that the new key focus is part of the grab, and cancel the full grab. This leaves the grab helper in an inconsistent and confused state, as the grab is pushed onto the grab stack after. https://bugzilla.gnome.org/show_bug.cgi?id=693975
This commit is contained in:
parent
5f995c64d4
commit
180000a531
1 changed files with 2 additions and 1 deletions
|
|
@ -167,6 +167,8 @@ const GrabHelper = new Lang.Class({
|
|||
if (params.grabFocus && !this._takeFocusGrab(hadFocus))
|
||||
return false;
|
||||
|
||||
this._grabStack.push(params);
|
||||
|
||||
if (params.focus) {
|
||||
params.focus.grab_key_focus();
|
||||
} else if (newFocus && (hadFocus || params.grabFocus)) {
|
||||
|
|
@ -177,7 +179,6 @@ const GrabHelper = new Lang.Class({
|
|||
if ((params.grabFocus || params.modal) && !this._capturedEventId)
|
||||
this._capturedEventId = global.stage.connect('captured-event', Lang.bind(this, this._onCapturedEvent));
|
||||
|
||||
this._grabStack.push(params);
|
||||
return true;
|
||||
},
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue