From bc81581f94dfdb803b47a2f3d0ebd93aa8436f53 Mon Sep 17 00:00:00 2001 From: chylex Date: Tue, 25 Oct 2016 15:31:08 +0200 Subject: [PATCH] Fix a crash in gui.js caused by accessing STATE too early --- src/tracker/gui.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/tracker/gui.js b/src/tracker/gui.js index 5b4df63..dd08465 100644 --- a/src/tracker/gui.js +++ b/src/tracker/gui.js @@ -3,9 +3,9 @@ var GUI = (function(){ var settings; var stateChangedEvent = (type, detail) => { - var force = type === "gui"; - if (controller){ + var force = type === "gui" && detail === "controller"; + if (type === "data" || force){ controller.ui.btnDownload.disabled = controller.ui.btnReset.disabled = !STATE.hasSavedData(); } @@ -16,7 +16,16 @@ var GUI = (function(){ } }; - STATE.onStateChanged(stateChangedEvent); + var registeredEvent = false; + + var setupStateChanged = function(detail){ + if (!registeredEvent){ + STATE.onStateChanged(stateChangedEvent); + registeredEvent = true; + } + + stateChangedEvent("gui", detail); + }; var root = { showController: function(){ @@ -111,7 +120,7 @@ var GUI = (function(){ controller.ui.inputUpload.value = null; }); - stateChangedEvent("gui", "controller"); + setupStateChanged("controller"); }, hideController: function(){