Fix commands without active window (#2473)

This commit is contained in:
CHaBou 2017-11-22 14:29:33 +01:00 committed by GitHub
parent 1d2b7818ec
commit 1e14494ec9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,33 +8,40 @@ const commands = {
setTimeout(app.createWindow, 0); setTimeout(app.createWindow, 0);
}, },
'tab:new': focusedWindow => { 'tab:new': focusedWindow => {
focusedWindow.rpc.emit('termgroup add req'); if (focusedWindow) {
focusedWindow.rpc.emit('termgroup add req');
} else {
setTimeout(app.createWindow, 0);
}
}, },
'pane:splitVertical': focusedWindow => { 'pane:splitVertical': focusedWindow => {
focusedWindow.rpc.emit('split request vertical'); focusedWindow && focusedWindow.rpc.emit('split request vertical');
}, },
'pane:splitHorizontal': focusedWindow => { 'pane:splitHorizontal': focusedWindow => {
focusedWindow.rpc.emit('split request horizontal'); focusedWindow && focusedWindow.rpc.emit('split request horizontal');
}, },
'pane:close': focusedWindow => { 'pane:close': focusedWindow => {
focusedWindow.rpc.emit('termgroup close req'); focusedWindow && focusedWindow.rpc.emit('termgroup close req');
}, },
'window:preferences': () => { 'window:preferences': () => {
openConfig(); openConfig();
}, },
'editor:clearBuffer': focusedWindow => { 'editor:clearBuffer': focusedWindow => {
focusedWindow.rpc.emit('session clear req'); focusedWindow && focusedWindow.rpc.emit('session clear req');
}, },
'plugins:update': () => { 'plugins:update': () => {
updatePlugins(); updatePlugins();
}, },
'window:reload': focusedWindow => { 'window:reload': focusedWindow => {
focusedWindow.rpc.emit('reload'); focusedWindow && focusedWindow.rpc.emit('reload');
}, },
'window:reloadFull': focusedWindow => { 'window:reloadFull': focusedWindow => {
focusedWindow.reload(); focusedWindow && focusedWindow.reload();
}, },
'window:devtools': focusedWindow => { 'window:devtools': focusedWindow => {
if (!focusedWindow) {
return;
}
const webContents = focusedWindow.webContents; const webContents = focusedWindow.webContents;
if (webContents.isDevToolsOpened()) { if (webContents.isDevToolsOpened()) {
webContents.closeDevTools(); webContents.closeDevTools();
@ -43,49 +50,49 @@ const commands = {
} }
}, },
'zoom:reset': focusedWindow => { 'zoom:reset': focusedWindow => {
focusedWindow.rpc.emit('reset fontSize req'); focusedWindow && focusedWindow.rpc.emit('reset fontSize req');
}, },
'zoom:in': focusedWindow => { 'zoom:in': focusedWindow => {
focusedWindow.rpc.emit('increase fontSize req'); focusedWindow && focusedWindow.rpc.emit('increase fontSize req');
}, },
'zoom:out': focusedWindow => { 'zoom:out': focusedWindow => {
focusedWindow.rpc.emit('decrease fontSize req'); focusedWindow && focusedWindow.rpc.emit('decrease fontSize req');
}, },
'tab:prev': focusedWindow => { 'tab:prev': focusedWindow => {
focusedWindow.rpc.emit('move left req'); focusedWindow && focusedWindow.rpc.emit('move left req');
}, },
'tab:next': focusedWindow => { 'tab:next': focusedWindow => {
focusedWindow.rpc.emit('move right req'); focusedWindow && focusedWindow.rpc.emit('move right req');
}, },
'pane:prev': focusedWindow => { 'pane:prev': focusedWindow => {
focusedWindow.rpc.emit('prev pane req'); focusedWindow && focusedWindow.rpc.emit('prev pane req');
}, },
'pane:next': focusedWindow => { 'pane:next': focusedWindow => {
focusedWindow.rpc.emit('next pane req'); focusedWindow && focusedWindow.rpc.emit('next pane req');
}, },
'editor:movePreviousWord': focusedWindow => { 'editor:movePreviousWord': focusedWindow => {
focusedWindow.rpc.emit('session move word left req'); focusedWindow && focusedWindow.rpc.emit('session move word left req');
}, },
'editor:moveNextWord': focusedWindow => { 'editor:moveNextWord': focusedWindow => {
focusedWindow.rpc.emit('session move word right req'); focusedWindow && focusedWindow.rpc.emit('session move word right req');
}, },
'editor:moveBeginningLine': focusedWindow => { 'editor:moveBeginningLine': focusedWindow => {
focusedWindow.rpc.emit('session move line beginning req'); focusedWindow && focusedWindow.rpc.emit('session move line beginning req');
}, },
'editor:moveEndLine': focusedWindow => { 'editor:moveEndLine': focusedWindow => {
focusedWindow.rpc.emit('session move line end req'); focusedWindow && focusedWindow.rpc.emit('session move line end req');
}, },
'editor:deletePreviousWord': focusedWindow => { 'editor:deletePreviousWord': focusedWindow => {
focusedWindow.rpc.emit('session del word left req'); focusedWindow && focusedWindow.rpc.emit('session del word left req');
}, },
'editor:deleteNextWord': focusedWindow => { 'editor:deleteNextWord': focusedWindow => {
focusedWindow.rpc.emit('session del word right req'); focusedWindow && focusedWindow.rpc.emit('session del word right req');
}, },
'editor:deleteBeginningLine': focusedWindow => { 'editor:deleteBeginningLine': focusedWindow => {
focusedWindow.rpc.emit('session del line beginning req'); focusedWindow && focusedWindow.rpc.emit('session del line beginning req');
}, },
'editor:deleteEndLine': focusedWindow => { 'editor:deleteEndLine': focusedWindow => {
focusedWindow.rpc.emit('session del line end req'); focusedWindow && focusedWindow.rpc.emit('session del line end req');
} }
}; };
@ -93,7 +100,7 @@ const commands = {
[1, 2, 3, 4, 5, 6, 7, 8, 'last'].forEach(cmdIndex => { [1, 2, 3, 4, 5, 6, 7, 8, 'last'].forEach(cmdIndex => {
const index = cmdIndex === 'last' ? cmdIndex : cmdIndex - 1; const index = cmdIndex === 'last' ? cmdIndex : cmdIndex - 1;
commands[`tab:jump:${cmdIndex}`] = focusedWindow => { commands[`tab:jump:${cmdIndex}`] = focusedWindow => {
focusedWindow.rpc.emit('move jump req', index); focusedWindow && focusedWindow.rpc.emit('move jump req', index);
}; };
}); });