Browse Source

Fixed tray double click, show/hide window and notification click

Fixes #755
Fixes #700
Fixes #608
Fixes #235
v0.5.8
Ramiro Saenz 8 years ago
parent
commit
5682a9c91c
  1. 2
      app/util/Notifier.js
  2. 20
      electron/main.js
  3. 40
      electron/tray.js

2
app/util/Notifier.js

@ -49,7 +49,7 @@ Ext.define('Rambox.util.Notifier', {
}); });
notification.onclick = function() { notification.onclick = function() {
require('electron').remote.getCurrentWindow().show(); ipc.send('toggleWin', true);
Ext.cq1('app-main').setActiveTab(view); Ext.cq1('app-main').setActiveTab(view);
}; };
} }

20
electron/main.js

@ -363,6 +363,26 @@ ipcMain.on('image:popup', function(event, url, partition) {
tmpWindow.loadURL(url); tmpWindow.loadURL(url);
}); });
ipcMain.on('toggleWin', function(event, allwaysShow) {
if ( !mainWindow.isMinimized() && mainWindow.isMaximized() && mainWindow.isVisible() ) { // Maximized
!allwaysShow ? mainWindow.close() : mainWindow.show();
} else if ( mainWindow.isMinimized() && !mainWindow.isMaximized() && !mainWindow.isVisible() ) { // Minimized
mainWindow.restore();
} else if ( !mainWindow.isMinimized() && !mainWindow.isMaximized() && mainWindow.isVisible() ) { // Windowed mode
!allwaysShow ? mainWindow.close() : mainWindow.show();
} else if ( mainWindow.isMinimized() && !mainWindow.isMaximized() && mainWindow.isVisible() ) { // Closed to taskbar
mainWindow.restore();
} else if ( !mainWindow.isMinimized() && mainWindow.isMaximized() && !mainWindow.isVisible() ) { // Closed maximized to tray
mainWindow.show();
} else if ( !mainWindow.isMinimized() && !mainWindow.isMaximized() && !mainWindow.isVisible() ) { // Closed windowed to tray
mainWindow.show();
} else if ( mainWindow.isMinimized() && !mainWindow.isMaximized() && !mainWindow.isVisible() ) { // Closed minimized to tray
mainWindow.restore();
} else {
mainWindow.show();
}
});
// Proxy // Proxy
if ( config.get('proxy') ) app.commandLine.appendSwitch('proxy-server', config.get('proxyHost')+':'+config.get('proxyPort')); if ( config.get('proxy') ) app.commandLine.appendSwitch('proxy-server', config.get('proxyHost')+':'+config.get('proxyPort'));

40
electron/tray.js

@ -15,38 +15,12 @@ exports.create = function(win, config) {
const icon = process.platform === 'linux' || process.platform === 'darwin' ? 'IconTray.png' : 'Icon.ico'; const icon = process.platform === 'linux' || process.platform === 'darwin' ? 'IconTray.png' : 'Icon.ico';
const iconPath = path.join(__dirname, `../resources/${icon}`); const iconPath = path.join(__dirname, `../resources/${icon}`);
const toggleWin = () => {
switch ( config.get('window_close_behavior') ) {
case 'keep_in_tray':
case 'quit':
if ( win.isVisible() ) {
win.hide();
} else if ( config.get('maximized') ) {
win.maximize();
win.focus();
} else {
win.show();
}
break;
case 'keep_in_tray_and_taskbar':
if ( win.isVisible() && !win.isMinimized() ) {
win.minimize();
} else if ( config.get('maximized') ) {
win.maximize();
win.focus();
} else {
win.show();
}
break;
default:
break;
}
};
const contextMenu = electron.Menu.buildFromTemplate([ const contextMenu = electron.Menu.buildFromTemplate([
{ {
label: 'Show/Hide Window' label: 'Show/Hide Window'
,click: toggleWin ,click() {
win.webContents.executeJavaScript('ipc.send("toggleWin", false);');
}
}, },
{ {
type: 'separator' type: 'separator'
@ -62,12 +36,8 @@ exports.create = function(win, config) {
appIcon = new Tray(iconPath); appIcon = new Tray(iconPath);
appIcon.setToolTip('Rambox'); appIcon.setToolTip('Rambox');
appIcon.setContextMenu(contextMenu); appIcon.setContextMenu(contextMenu);
appIcon.on('double-click', () => { appIcon.on('double-click', function() {
if ( !win.isVisible() ) { win.webContents.executeJavaScript('ipc.send("toggleWin", true);');
win.show();
} else {
win.focus();
}
}); });
}; };

Loading…
Cancel
Save