[gnome-shell] pressure-barrier: don't discard grabbed events when overview is grabbing



commit 53a595885aa2a99a9c372d5ec063888beee507e5
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Sat Feb 16 16:17:11 2013 -0500

    pressure-barrier: don't discard grabbed events when overview is grabbing
    
    Since we still want to trigger the message tray in that case.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693987

 js/ui/layout.js |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/layout.js b/js/ui/layout.js
index f6443ed..d181bf6 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -1195,10 +1195,16 @@ const PressureBarrier = new Lang.Class({
     },
 
     _onBarrierHit: function(barrier, event) {
-        // Throw out all events where the pointer was grabbed,
-        // as the client that grabbed the pointer expects to have
-        // complete control over it.
-        if (event.grabbed)
+        // Throw out all events where the pointer was grabbed by another
+        // client, as the client that grabbed the pointer expects to have
+        // complete control over it
+        if (event.grabbed && Main.modalCount == 0)
+            return;
+
+        let isOverview = ((Main.keybindingMode & (Shell.KeyBindingMode.OVERVIEW)) != 0);
+
+        // Throw out events where the grab is taken by the overview visible
+        if (event.grabbed && !isOverview)
             return;
 
         let slide = this._getDistanceAlongBarrier(event);


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