Close to tray (#21)
* Close to Tray implemented * Enable Tray Icon on Linux * Remove unnecessary function * Revert 26a3a98e384cc62a94f2b213af3a6543874b3d95
This commit is contained in:
parent
5609fecbce
commit
d5308a3bf5
|
@ -93,7 +93,7 @@ export class BaseMenu {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.i18nService.t('close'),
|
label: this.i18nService.t('close'),
|
||||||
role: 'close',
|
role: 'quit',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
export class ElectronConstants {
|
export class ElectronConstants {
|
||||||
static readonly enableMinimizeToTrayKey: string = 'enableMinimizeToTray';
|
static readonly enableMinimizeToTrayKey: string = 'enableMinimizeToTray';
|
||||||
|
static readonly enableCloseToTrayKey: string = 'enableCloseToTray';
|
||||||
static readonly enableTrayKey: string = 'enableTray';
|
static readonly enableTrayKey: string = 'enableTray';
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,17 @@ export class TrayMain {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (process.platform === 'win32') {
|
||||||
|
this.windowMain.win.on('close', async (e: Event) => {
|
||||||
|
if (await this.storageService.get<boolean>(ElectronConstants.enableCloseToTrayKey)) {
|
||||||
|
if(!this.windowMain.isQuitting){
|
||||||
|
e.preventDefault();
|
||||||
|
this.hideToTray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.windowMain.win.on('show', async (e: Event) => {
|
this.windowMain.win.on('show', async (e: Event) => {
|
||||||
const enableTray = await this.storageService.get<boolean>(ElectronConstants.enableTrayKey);
|
const enableTray = await this.storageService.get<boolean>(ElectronConstants.enableTrayKey);
|
||||||
if (!enableTray) {
|
if (!enableTray) {
|
||||||
|
@ -124,6 +135,7 @@ export class TrayMain {
|
||||||
}
|
}
|
||||||
|
|
||||||
private closeWindow() {
|
private closeWindow() {
|
||||||
|
this.windowMain.isQuitting = true;
|
||||||
if (this.windowMain.win != null) {
|
if (this.windowMain.win != null) {
|
||||||
this.windowMain.win.close();
|
this.windowMain.win.close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ const Keys = {
|
||||||
|
|
||||||
export class WindowMain {
|
export class WindowMain {
|
||||||
win: BrowserWindow;
|
win: BrowserWindow;
|
||||||
|
isQuitting: boolean = false;
|
||||||
|
|
||||||
private windowStateChangeTimer: NodeJS.Timer;
|
private windowStateChangeTimer: NodeJS.Timer;
|
||||||
private windowStates: { [key: string]: any; } = {};
|
private windowStates: { [key: string]: any; } = {};
|
||||||
|
@ -39,6 +40,12 @@ export class WindowMain {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This method will be called when Electron is shutting
|
||||||
|
// down the application.
|
||||||
|
app.on('before-quit', () => {
|
||||||
|
this.isQuitting = true;
|
||||||
|
});
|
||||||
|
|
||||||
// This method will be called when Electron has finished
|
// This method will be called when Electron has finished
|
||||||
// initialization and is ready to create browser windows.
|
// initialization and is ready to create browser windows.
|
||||||
// Some APIs can only be used after this event occurs.
|
// Some APIs can only be used after this event occurs.
|
||||||
|
|
Loading…
Reference in New Issue