diff options
| -rw-r--r-- | electron_js/main.js | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/electron_js/main.js b/electron_js/main.js index 3dfb8d6b..b2c53b41 100644 --- a/electron_js/main.js +++ b/electron_js/main.js @@ -3,19 +3,52 @@ app.commandLine.appendSwitch ('ignore-certificate-errors', 'true'); var BrowserWindow = require('browser-window'); // Module to create native browser window. // Report crashes to our server. -require('crash-reporter').start(); +//require('crash-reporter').start(); // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is GCed. var mainWindow = null; + +// Make sure zmNinja is a single instance app, even if launched from +// terminal +var shouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) { + // Someone tried to run a second instance, we should focus our window + if (mainWindow) { + if (mainWindow.isMinimized()) mainWindow.restore(); + mainWindow.focus(); + } + return true; +}); + +if (shouldQuit) { + app.quit(); + return; +} + // Quit when all windows are closed. app.on('window-all-closed', function() { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q - //if (process.platform != 'darwin') { + if (process.platform != 'darwin') { app.quit(); - //} + } + +}); + +// OSX only callback - takes care of spawning +// a new app window if needed +app.on('activate', function() +{ + if (mainWindow==null) + { + mainWindow = new BrowserWindow({width:1024, height:900}); + mainWindow.loadUrl('file://' + __dirname + '/index.html'); + mainWindow.on('closed', function() { + + mainWindow = null; + }); + } }); // This method will be called when Electron has finished |
