Merge pull request #6545 from rhysd/electron-makeSingleInstance

github-electron: Add makeSingleInstance() API to 'app' module
This commit is contained in:
Masahiro Wakame
2015-11-02 23:30:31 +09:00
2 changed files with 21 additions and 0 deletions
@@ -35,6 +35,21 @@ app.on('window-all-closed', () => {
app.quit();
});
// Check single instance app
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();
process.exit(0);
}
// This method will be called when Electron has done everything
// initialization and ready for creating browser windows.
app.on('ready', () => {
+6
View File
@@ -986,6 +986,12 @@ declare module GitHubElectron {
setUserTasks(tasks: Task[]): void;
dock: BrowserWindow;
commandLine: CommandLine;
/**
* This method makes your application a Single Instance Application instead of allowing
* multiple instances of your app to run, this will ensure that only a single instance
* of your app is running, and other instances signal this instance and exit.
*/
makeSingleInstance(callback: (args: string[], workingDirectory: string) => boolean): boolean;
}
interface CommandLine {