diff --git a/js/ui/overview.js b/js/ui/overview.js index 4d8dce7ec..6d487f619 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -92,7 +92,9 @@ const Overview = new Lang.Class({ _init: function() { this._overviewCreated = false; this._initCalled = false; + this._controlPressed = false; + global.stage.connect('captured-event', Lang.bind(this, this._capturedEvent)); Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated)); this._sessionUpdated(); }, @@ -224,6 +226,20 @@ const Overview = new Lang.Class({ } }, + _capturedEvent: function(actor, event) { + let type = event.type(); + if (type != Clutter.EventType.KEY_PRESS && + type != Clutter.EventType.KEY_RELEASE) + return false; + + let symbol = event.get_key_symbol(); + if (symbol == Clutter.KEY_Control_L || + symbol == Clutter.KEY_Control_R) + this._controlPressed = type == Clutter.EventType.KEY_PRESS; + + return false; + }, + _sessionUpdated: function() { this.isDummy = !Main.sessionMode.hasOverview; this._createOverview(); @@ -565,6 +581,9 @@ const Overview = new Lang.Class({ if (!this._shown) return; + if (this._controlPressed) + return; + if (!this._shownTemporarily) this._animateNotVisible();