From deb77a4dde952227342f1a7177ad5247b462834c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 2 Mar 2013 19:56:37 +0100 Subject: [PATCH] switcherPopup: Cancel the OSD popup before showing It is irritating to show two different system popups at the same time, so let switcher popups like alt-tab cancel out the OSD. https://bugzilla.gnome.org/show_bug.cgi?id=613543 --- js/ui/osdWindow.js | 9 +++++++++ js/ui/switcherPopup.js | 1 + 2 files changed, 10 insertions(+) diff --git a/js/ui/osdWindow.js b/js/ui/osdWindow.js index fc90ed288..efcd10dc9 100644 --- a/js/ui/osdWindow.js +++ b/js/ui/osdWindow.js @@ -140,6 +140,15 @@ const OsdWindow = new Lang.Class({ Lang.bind(this, this._hide)); }, + cancel: function() { + if (!this._hideTimeoutId) + return; + + Mainloop.source_remove(this._hideTimeoutId); + this._hideTimeoutId = 0; + this._hide(); + }, + _hide: function() { Tweener.addTween(this.actor, { opacity: 0, diff --git a/js/ui/switcherPopup.js b/js/ui/switcherPopup.js index bfe172b0c..b31dc2edb 100644 --- a/js/ui/switcherPopup.js +++ b/js/ui/switcherPopup.js @@ -160,6 +160,7 @@ const SwitcherPopup = new Lang.Class({ // disturbed by the popup briefly flashing. this._initialDelayTimeoutId = Mainloop.timeout_add(POPUP_DELAY_TIMEOUT, Lang.bind(this, function () { + Main.osdWindow.cancel(); this.actor.opacity = 255; this._initialDelayTimeoutId = 0; }));