Why does my Electron app quit when closing a Renderer window?

Viewed 3042

I'm testing on Windows. The app sets up a Tray menu on 'ready', with an 'About' label. When clicked, it shows a BrowserWindow:

 var aboutBox = new BrowserWindow({
        width: 460, height: 176, useContentSize: true,
        icon: iconImg,
        maximizable: false, fullscreenable: false, resizable: false, minimizable: false
    });

and then, when the user clicks on OK, closing it with:

const remote = require('electron').remote;
remote.getCurrentWindow().close();

causes the app to exit.

Why?

1 Answers

In your main.js you could have this code:

// 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') {
    app.quit()
  }
})

So because you close the unique windows this event it's emitted and app is closed.

EDIT This behavior is also default in Electron, so to avoid closing app closing the main window add this line:

app.on('window-all-closed', e => e.preventDefault() )
Related