mirror of https://github.com/vector-im/riot-web
Merge hide-to-tray-icon with show-tray-icon
parent
4b0fa940bb
commit
9820e59559
|
@ -86,8 +86,6 @@ const store = new Store({ name: "electron-config" });
|
||||||
|
|
||||||
let mainWindow = null;
|
let mainWindow = null;
|
||||||
global.appQuitting = false;
|
global.appQuitting = false;
|
||||||
global.showTrayIcon = store.get("showTrayIcon", true);
|
|
||||||
global.minimizeToTray = global.showTrayIcon && store.get('minimizeToTray', true);
|
|
||||||
|
|
||||||
// It's important to call `path.join` so we don't end up with the packaged asar in the final path.
|
// It's important to call `path.join` so we don't end up with the packaged asar in the final path.
|
||||||
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
|
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
|
||||||
|
@ -174,25 +172,17 @@ ipcMain.on('ipcCall', async function(ev, payload) {
|
||||||
launcher.disable();
|
launcher.disable();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'getTrayIconEnabled':
|
case 'getMinimizeToTrayEnabled':
|
||||||
ret = global.showTrayIcon;
|
ret = tray.hasTray();
|
||||||
break;
|
break;
|
||||||
case 'setTrayIconEnabled':
|
case 'setMinimizeToTrayEnabled':
|
||||||
if (args[0]) {
|
if (args[0]) {
|
||||||
// Create trayIcon icon
|
// Create trayIcon icon
|
||||||
tray.create(trayConfig);
|
tray.create(trayConfig);
|
||||||
} else {
|
} else {
|
||||||
tray.destroy();
|
tray.destroy();
|
||||||
}
|
}
|
||||||
store.set('minimizeToTray', global.showTrayIcon = args[0]);
|
store.set('minimizeToTray', args[0]);
|
||||||
// re-evaluate whether we should be minimizing to tray
|
|
||||||
global.minimizeToTray = global.showTrayIcon && store.get('minimizeToTray', true);
|
|
||||||
break;
|
|
||||||
case 'getMinimizeToTrayEnabled':
|
|
||||||
ret = global.minimizeToTray;
|
|
||||||
break;
|
|
||||||
case 'setMinimizeToTrayEnabled':
|
|
||||||
store.set('minimizeToTray', global.minimizeToTray = args[0]);
|
|
||||||
break;
|
break;
|
||||||
case 'getAutoHideMenuBarEnabled':
|
case 'getAutoHideMenuBarEnabled':
|
||||||
ret = global.mainWindow.isMenuBarAutoHide();
|
ret = global.mainWindow.isMenuBarAutoHide();
|
||||||
|
@ -388,7 +378,7 @@ app.on('ready', () => {
|
||||||
mainWindow.hide();
|
mainWindow.hide();
|
||||||
|
|
||||||
// Create trayIcon icon
|
// Create trayIcon icon
|
||||||
if (global.showTrayIcon) tray.create(trayConfig);
|
if (store.get('minimizeToTray', true)) tray.create(trayConfig);
|
||||||
|
|
||||||
mainWindow.once('ready-to-show', () => {
|
mainWindow.once('ready-to-show', () => {
|
||||||
mainWindowState.manage(mainWindow);
|
mainWindowState.manage(mainWindow);
|
||||||
|
@ -405,7 +395,8 @@ app.on('ready', () => {
|
||||||
mainWindow = global.mainWindow = null;
|
mainWindow = global.mainWindow = null;
|
||||||
});
|
});
|
||||||
mainWindow.on('close', (e) => {
|
mainWindow.on('close', (e) => {
|
||||||
if (global.minimizeToTray && !global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
|
// If we are not quitting and have a tray icon then minimize to tray
|
||||||
|
if (!global.appQuitting && tray.hasTray()) {
|
||||||
// On Mac, closing the window just hides it
|
// On Mac, closing the window just hides it
|
||||||
// (this is generally how single-window Mac apps
|
// (this is generally how single-window Mac apps
|
||||||
// behave, eg. Mail.app)
|
// behave, eg. Mail.app)
|
||||||
|
|
|
@ -211,23 +211,11 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||||
return this._ipcCall('setAutoHideMenuBarEnabled', enabled);
|
return this._ipcCall('setAutoHideMenuBarEnabled', enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsTrayIcon(): boolean {
|
supportsMinimizeToTray(): boolean {
|
||||||
// Things other than Mac support tray icons
|
// Things other than Mac support tray icons
|
||||||
return !navigator.platform.toUpperCase().includes('MAC');
|
return !navigator.platform.toUpperCase().includes('MAC');
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTrayIconEnabled(): boolean {
|
|
||||||
return this._ipcCall('getTrayIconEnabled');
|
|
||||||
}
|
|
||||||
|
|
||||||
async setTrayIconEnabled(enabled: boolean): void {
|
|
||||||
return this._ipcCall('setTrayIconEnabled', enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
supportsMinimizeToTray(): boolean {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
async getMinimizeToTrayEnabled(): boolean {
|
async getMinimizeToTrayEnabled(): boolean {
|
||||||
return this._ipcCall('getMinimizeToTrayEnabled');
|
return this._ipcCall('getMinimizeToTrayEnabled');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue