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);
});