From 48adb2ef4b3fa97c59952ca45918268e1e2d0160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Fri, 20 Sep 2019 11:37:26 +0200 Subject: [PATCH] workspace: Fix an incorrect signal check While commit 3094f863 was intended to cancel the ongoing idle hide timeout before we start a new one, a mistake slipped in there while rebasing: Obviously we should check if the signal id is NOT 0 here. This didn't prevent timeouts being started while old ones are still running and did override `this._idleHideOverlayId`, which caused the old timeouts to run indefinitely after an overlay actor was destroyed because we fail early (and don't return TRUE) in `_idleHideOverlay()`. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/735 --- js/ui/workspace.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 317792832..a93b19add 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -684,7 +684,7 @@ var WindowOverlay = class { } _onHideChrome() { - if (this._idleHideOverlayId == 0) + if (this._idleHideOverlayId > 0) GLib.source_remove(this._idleHideOverlayId); this._idleHideOverlayId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, WINDOW_OVERLAY_IDLE_HIDE_TIMEOUT, this._idleHideOverlay.bind(this));