[gnome-shell/wip/gestures-2: 1/5] backgroundMenu: Release the click gesture if a grab operation begun



commit 1ea2e2bcab50b3ac8648db410eba5d368de7c40b
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Jun 25 17:53:37 2014 +0200

    backgroundMenu: Release the click gesture if a grab operation begun
    
    If an active grab on pointer events happens during multi-touch operations,
    all non-pointer-emulating touches will be muted. This may leave the
    Clutter.ClickAction incomplete if triggered by one of those sequences,
    just to have a gesture take over and trigger a compositor grab, which would
    leave the capture-event handler stuck eating events.
    
    So listen for grab-op-begin from the display, and ensure the action is
    released if such grab begins.
    and the capture event handler stuck.

 js/ui/backgroundMenu.js |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/backgroundMenu.js b/js/ui/backgroundMenu.js
index b3dec1c..d9341f5 100644
--- a/js/ui/backgroundMenu.js
+++ b/js/ui/backgroundMenu.js
@@ -55,9 +55,14 @@ function addBackgroundMenu(actor, layoutManager) {
     });
     actor.add_action(clickAction);
 
+    let grabOpBeginId = global.display.connect('grab-op-begin', function () {
+        clickAction.release();
+    });
+
     actor.connect('destroy', function() {
         actor._backgroundMenu.destroy();
         actor._backgroundMenu = null;
         actor._backgroundManager = null;
+        global.display.disconnect(grabOpBeginId);
     });
 }


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