[gnome-shell/wip/grab-helper-top-panel: 17/20] grabHelper: Use captured-event for escape ungrabs
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/grab-helper-top-panel: 17/20] grabHelper: Use captured-event for escape ungrabs
- Date: Mon, 26 Nov 2012 21:40:49 +0000 (UTC)
commit ef9006fa65bf6f1ae24c16e53fbe164ea825b186
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Nov 26 14:47:30 2012 -0500
grabHelper: Use captured-event for escape ungrabs
I have no idea why we used 'event' rather than 'captured-event' before.
'event' has some really strange quirks that came up when porting PopupMenu
to the GrabHelper
js/ui/grabHelper.js | 25 ++++++-------------------
1 files changed, 6 insertions(+), 19 deletions(-)
---
diff --git a/js/ui/grabHelper.js b/js/ui/grabHelper.js
index 3623a0f..7e86c84 100644
--- a/js/ui/grabHelper.js
+++ b/js/ui/grabHelper.js
@@ -43,7 +43,6 @@ const GrabHelper = new Lang.Class({
this._actors = [];
this._capturedEventId = 0;
- this._eventId = 0;
this._keyFocusNotifyId = 0;
this._focusWindowChangedId = 0;
this._ignoreRelease = false;
@@ -171,7 +170,6 @@ const GrabHelper = new Lang.Class({
return false;
this._capturedEventId = global.stage.connect('captured-event', Lang.bind(this, this._onCapturedEvent));
- this._eventId = global.stage.connect('event', Lang.bind(this, this._onEvent));
}
this._modalCount++;
@@ -188,11 +186,6 @@ const GrabHelper = new Lang.Class({
this._capturedEventId = 0;
}
- if (this._eventId > 0) {
- global.stage.disconnect(this._eventId);
- this._eventId = 0;
- }
-
Main.popModal(this._owner);
global.sync_pointer();
},
@@ -323,6 +316,12 @@ const GrabHelper = new Lang.Class({
if (Main.keyboard.shouldTakeEvent(event))
return false;
+ if (type == Clutter.EventType.KEY_PRESS &&
+ event.get_key_symbol() == Clutter.KEY_Escape) {
+ this.ungrab();
+ return true;
+ }
+
if (button) {
// If we have a press event, ignore the next event,
// which should be a release event.
@@ -334,18 +333,6 @@ const GrabHelper = new Lang.Class({
return this._modalCount > 0;
},
- // We catch 'event' rather than 'key-press-event' so that we get
- // a chance to run before the overview's own Escape check
- _onEvent: function(actor, event) {
- if (event.type() == Clutter.EventType.KEY_PRESS &&
- event.get_key_symbol() == Clutter.KEY_Escape) {
- this.ungrab();
- return true;
- }
-
- return false;
- },
-
_onKeyFocusChanged: function() {
let focus = global.stage.key_focus;
if (!focus || !this._isWithinGrabbedActor(focus))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]