summaryrefslogtreecommitdiff
path: root/electron_js
diff options
context:
space:
mode:
authorArjun Roychowdhury <pliablepixels@gmail.com>2015-11-08 14:30:14 -0500
committerArjun Roychowdhury <pliablepixels@gmail.com>2015-11-08 14:30:14 -0500
commit770bb8b52481cdcae26464a5112746e775b861c2 (patch)
tree585f49983557233a715585cf03c53376f1b652e8 /electron_js
parent58f31ac0932954cec75392ceca696b8bb181ded9 (diff)
OSX UI attach/detach handling
Former-commit-id: 851c04c376a97272431da208f0986c466c94008b
Diffstat (limited to 'electron_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