[gnome-shell] grabHelper: Track the grab before trying to set key focus



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]