[gnome-shell] grabHelper: Use captured-event for escape ungrabs
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] grabHelper: Use captured-event for escape ungrabs
- Date: Sat, 8 Dec 2012 00:56:29 +0000 (UTC)
commit 41db363b06c0c8c1da685ea54ef251bad07c6056
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
https://bugzilla.gnome.org/show_bug.cgi?id=689109
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 f6b11cc..4104c8d 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();
},
@@ -310,6 +303,12 @@ const GrabHelper = new Lang.Class({
if (!button && this._modalCount == 0)
return false;
+ if (type == Clutter.EventType.KEY_PRESS &&
+ event.get_key_symbol() == Clutter.KEY_Escape) {
+ this.ungrab();
+ return true;
+ }
+
if (this._isWithinGrabbedActor(event.get_source()))
return false;
@@ -327,18 +326,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]