Ignore clicks on hot corner during transition

It's both intuitive to go to the corner of the screen
and click the activities button at the same time.

Both actions bring up the overlay,  but combined
they cancel each other out.  This commit makes
clicking the hot corner not cancel the act of
going to the hot corner.

Based on a patch from Ray Strode.
This commit is contained in:
Marina Zhurakhinskaya 2009-08-07 18:22:05 -04:00
parent df8f727bba
commit 00cc32d95a
2 changed files with 10 additions and 3 deletions

View File

@ -92,6 +92,7 @@ Overlay.prototype = {
this._group._delegate = this; this._group._delegate = this;
this.visible = false; this.visible = false;
this.animationInProgress = false;
this._hideInProgress = false; this._hideInProgress = false;
this._recalculateGridSizes(); this._recalculateGridSizes();
@ -242,6 +243,7 @@ Overlay.prototype = {
return; return;
this.visible = true; this.visible = true;
this.animationInProgress = true;
let global = Shell.Global.get(); let global = Shell.Global.get();
let screenWidth = global.screen_width; let screenWidth = global.screen_width;
@ -309,6 +311,7 @@ Overlay.prototype = {
let global = Shell.Global.get(); let global = Shell.Global.get();
this.animationInProgress = true;
this._hideInProgress = true; this._hideInProgress = true;
if (this._activeDisplayPane != null) if (this._activeDisplayPane != null)
this._activeDisplayPane.close(); this._activeDisplayPane.close();
@ -377,6 +380,8 @@ Overlay.prototype = {
this._dash.actor.raise_top(); this._dash.actor.raise_top();
this._dash.actor.remove_clip(); this._dash.actor.remove_clip();
this.animationInProgress = false;
this.emit('shown'); this.emit('shown');
}, },
@ -393,6 +398,7 @@ Overlay.prototype = {
this._group.hide(); this._group.hide();
this.visible = false; this.visible = false;
this.animationInProgress = false;
this._hideInProgress = false; this._hideInProgress = false;
Main.endModal(); Main.endModal();

View File

@ -83,8 +83,7 @@ Panel.prototype = {
// In addition to being triggered by the mouse enter event, the hot corner // In addition to being triggered by the mouse enter event, the hot corner
// can be triggered by clicking on it. This is useful if the user wants to // can be triggered by clicking on it. This is useful if the user wants to
// immediately undo the effect of triggering the hot corner once in the // undo the effect of triggering the hot corner once in the hot corner.
// hot corner.
hotCorner.connect('enter-event', hotCorner.connect('enter-event',
Lang.bind(this, this._onHotCornerTriggered)); Lang.bind(this, this._onHotCornerTriggered));
hotCorner.connect('button-release-event', hotCorner.connect('button-release-event',
@ -220,7 +219,9 @@ Panel.prototype = {
}, },
_onHotCornerTriggered : function() { _onHotCornerTriggered : function() {
Main.overlay.toggle(); if (!Main.overlay.animationInProgress) {
Main.overlay.toggle();
}
return false; return false;
} }
}; };