diff --git a/local/index.html b/local/index.html index 7a262984..a5fd00b3 100644 --- a/local/index.html +++ b/local/index.html @@ -326,9 +326,17 @@ //::dev:{*/ function $rebuild() { + var progressMsg = document.getElementById("progress-msg"); if (!window.rebuildProc) { - if (document.getElementById("progress-msg")) - document.getElementById("progress-msg").firstChild.data = "Rebuilding"; + if (sessionStorage.triedToReload) { + win.showDevTools(); + progressMsg.textContent = "there were errors starting application"; + return + } + sessionStorage.triedToReload = 1; + + if (progressMsg) + progressMsg.firstChild.data = "Rebuilding"; var proc = window.rebuildProc = spawn("bash", ["./scripts/makelocal.sh", "--quick"]); proc = spawn("bash", ["../scripts/makelocal.sh"], {cwd: server.__dirname}); proc.stdout.on("data", function(d) { console.log(d + "") }); diff --git a/local/server.js b/local/server.js index ed2ea053..9598972f 100644 --- a/local/server.js +++ b/local/server.js @@ -613,12 +613,18 @@ function registerWindow(win, id) { allWindows[id] = win; activeWindowId = id; - win.on("close", function() { + function mainCloseHandler() { if (win.listeners("close").length == 1) { onClose(id); win.close(true); } + } + // make sure only one mainCloseHandler is attached even after calling win.reload() + win.listeners("close").forEach(function(f) { + if (f.name == "mainCloseHandler") + win.removeListener("close", f); }); + win.on("close", mainCloseHandler); win.on("focus", function() { onFocus(id); });