[gnome-shell] messageTray: Make modal



commit 1f6d807882b60e120065d948b5ecd1b68bf9c60f
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Fri Aug 10 17:03:12 2012 -0300

    messageTray: Make modal

 js/ui/messageTray.js |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 11ae995..4eb0eb2 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1887,6 +1887,13 @@ const MessageTray = new Lang.Class({
                       transition: 'easeOutQuad'
                     });
 
+        // Don't actually take a modal grab in the overview.
+        // Just add something to the grab stack that we can
+        // pop later.
+        this._grabHelper.grab({ actor: this.actor,
+                                modal: !this._overviewVisible,
+                                onUngrab: Lang.bind(this, this._escapeTray) });
+
         // Don't move the windows up if we are in the overview.
         if (this._overviewVisible)
             return;
@@ -1918,6 +1925,11 @@ const MessageTray = new Lang.Class({
     },
 
     _hideTray: function() {
+        // Note that we might have entered here without a grab,
+        // which would happen if GrabHelper ungrabbed for us.
+        // This is a no-op in that case.
+        this._grabHelper.ungrab({ actor: this.actor });
+
         this._tween(this.actor, '_trayState', State.HIDDEN,
                     { y: 0,
                       time: ANIMATION_TIME,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]