[gnome-shell/wip/gestures-2: 1/5] backgroundMenu: Release the click gesture if a grab operation begun
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/gestures-2: 1/5] backgroundMenu: Release the click gesture if a grab operation begun
- Date: Tue, 8 Jul 2014 16:13:28 +0000 (UTC)
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]