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
This commit is contained in:
Jonas Dreßler 2019-09-20 11:37:26 +02:00
parent f8e648b7e3
commit 48adb2ef4b

View File

@ -684,7 +684,7 @@ var WindowOverlay = class {
} }
_onHideChrome() { _onHideChrome() {
if (this._idleHideOverlayId == 0) if (this._idleHideOverlayId > 0)
GLib.source_remove(this._idleHideOverlayId); GLib.source_remove(this._idleHideOverlayId);
this._idleHideOverlayId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, WINDOW_OVERLAY_IDLE_HIDE_TIMEOUT, this._idleHideOverlay.bind(this)); this._idleHideOverlayId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, WINDOW_OVERLAY_IDLE_HIDE_TIMEOUT, this._idleHideOverlay.bind(this));