summaryrefslogtreecommitdiff
path: root/electron_js/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'electron_js/main.js')
-rw-r--r--electron_js/main.js39
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