diff --git a/js/ui/grabHelper.js b/js/ui/grabHelper.js index 3623a0f66..7e86c8439 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))