diff --git a/src/emain.ts b/src/emain.ts
index c72e9ed9..54e3ccb2 100644
--- a/src/emain.ts
+++ b/src/emain.ts
@@ -245,6 +245,11 @@ electron.ipcMain.on("get-id", (event) => {
return;
});
+electron.ipcMain.on("local-server-status", (event) => {
+ event.returnValue = (localServerProc != null);
+ return;
+});
+
electron.ipcMain.on("restart-server", (event) => {
if (localServerProc != null) {
localServerProc.kill();
diff --git a/src/main.tsx b/src/main.tsx
index d7b21631..d7ffe35e 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -2587,7 +2587,7 @@ class Main extends React.Component<{}, {}> {
-
+
diff --git a/src/model.ts b/src/model.ts
index 067f4c60..b020753f 100644
--- a/src/model.ts
+++ b/src/model.ts
@@ -1529,13 +1529,15 @@ class Model {
termUsedRowsCache : Record = {};
debugCmds : number = 0;
debugSW : OV = mobx.observable.box(false);
- localServerRunning : OV = mobx.observable.box(false);
+ localServerRunning : OV;
constructor() {
this.clientId = getApi().getId();
this.ws = new WSControl(this.clientId, (message : any) => this.runUpdate(message, false));
this.ws.reconnect();
this.inputModel = new InputModel();
+ let isLocalServerRunning = getApi().getLocalServerStatus();
+ this.localServerRunning = mobx.observable.box(isLocalServerRunning);
getApi().onTCmd(this.onTCmd.bind(this));
getApi().onICmd(this.onICmd.bind(this));
getApi().onLCmd(this.onLCmd.bind(this));
diff --git a/src/preload.js b/src/preload.js
index 314b0e26..bdb57e05 100644
--- a/src/preload.js
+++ b/src/preload.js
@@ -2,6 +2,7 @@ let {contextBridge, ipcRenderer} = require("electron");
contextBridge.exposeInMainWorld("api", {
getId: () => ipcRenderer.sendSync("get-id"),
+ getLocalServerStatus: () => ipcRenderer.sendSync("local-server-status"),
restartLocalServer: () => ipcRenderer.sendSync("restart-server"),
onTCmd: (callback) => ipcRenderer.on("t-cmd", callback),
onICmd: (callback) => ipcRenderer.on("i-cmd", callback),