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.
This commit is contained in:
parent
a8b15dd2cf
commit
1ea2e2bcab
@ -55,9 +55,14 @@ function addBackgroundMenu(actor, layoutManager) {
|
|||||||
});
|
});
|
||||||
actor.add_action(clickAction);
|
actor.add_action(clickAction);
|
||||||
|
|
||||||
|
let grabOpBeginId = global.display.connect('grab-op-begin', function () {
|
||||||
|
clickAction.release();
|
||||||
|
});
|
||||||
|
|
||||||
actor.connect('destroy', function() {
|
actor.connect('destroy', function() {
|
||||||
actor._backgroundMenu.destroy();
|
actor._backgroundMenu.destroy();
|
||||||
actor._backgroundMenu = null;
|
actor._backgroundMenu = null;
|
||||||
actor._backgroundManager = null;
|
actor._backgroundManager = null;
|
||||||
|
global.display.disconnect(grabOpBeginId);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user