[gnome-shell] grabHelper: Track the grab before trying to set key focus
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] grabHelper: Track the grab before trying to set key focus
- Date: Sat, 16 Feb 2013 18:34:11 +0000 (UTC)
commit 180000a5317e771a7860419fafa8431295547dd7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Sat Feb 16 12:52:37 2013 -0500
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
js/ui/grabHelper.js | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/js/ui/grabHelper.js b/js/ui/grabHelper.js
index 058524a..e31cc2f 100644
--- a/js/ui/grabHelper.js
+++ b/js/ui/grabHelper.js
@@ -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;
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]