From 0c92e71aae3af8aa60e36cb9a44b3a8a5e9d12b2 Mon Sep 17 00:00:00 2001 From: Max Claus Nunes Date: Thu, 1 Jun 2017 17:11:41 -0300 Subject: [PATCH] Only send ipc message if webContents is available Close #306 --- src/browser/menu/darwin.js | 22 ++++++++++++++-------- src/browser/menu/linux.js | 22 ++++++++++++++-------- src/browser/menu/win32.js | 22 ++++++++++++++-------- 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/src/browser/menu/darwin.js b/src/browser/menu/darwin.js index 11add6b2..b96a4e79 100644 --- a/src/browser/menu/darwin.js +++ b/src/browser/menu/darwin.js @@ -1,5 +1,11 @@ import { shell } from 'electron'; // eslint-disable-line import/no-unresolved +function sendMessage(win, message) { + if (win) { + win.webContents.send(message); + } +} + export function buildTemplate(app, buildNewWindow, appConfig) { return [ { @@ -54,12 +60,12 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'New Tab', accelerator: 'Cmd+T', - click: (item, win) => win.webContents.send('sqlectron:new-tab'), + click: (item, win) => sendMessage(win, 'sqlectron:new-tab'), }, { label: 'Close Tab', accelerator: 'Cmd+W', - click: (item, win) => win.webContents.send('sqlectron:close-tab'), + click: (item, win) => sendMessage(win, 'sqlectron:close-tab'), }, { type: 'separator', @@ -67,7 +73,7 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Save Query', accelerator: 'Cmd+S', - click: (item, win) => win.webContents.send('sqlectron:save-query'), + click: (item, win) => sendMessage(win, 'sqlectron:save-query'), }, ], }, @@ -77,17 +83,17 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Execute', accelerator: 'Cmd+Enter', - click: (item, win) => win.webContents.send('sqlectron:query-execute'), + click: (item, win) => sendMessage(win, 'sqlectron:query-execute'), }, { label: 'Execute', accelerator: 'Cmd+R', - click: (item, win) => win.webContents.send('sqlectron:query-execute'), + click: (item, win) => sendMessage(win, 'sqlectron:query-execute'), }, { label: 'Focus Query Editor', accelerator: 'Shift+Cmd+0', - click: (item, win) => win.webContents.send('sqlectron:query-focus'), + click: (item, win) => sendMessage(win, 'sqlectron:query-focus'), }, ], }, @@ -150,12 +156,12 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Search databases', accelerator: 'Shift+Cmd+9', - click: (item, win) => win.webContents.send('sqlectron:toggle-database-search'), + click: (item, win) => sendMessage(win, 'sqlectron:toggle-database-search'), }, { label: 'Search database objects', accelerator: 'Cmd+9', - click: (item, win) => win.webContents.send('sqlectron:toggle-database-objects-search'), + click: (item, win) => sendMessage(win, 'sqlectron:toggle-database-objects-search'), }, ], }, diff --git a/src/browser/menu/linux.js b/src/browser/menu/linux.js index 6339ec91..23a35a1a 100644 --- a/src/browser/menu/linux.js +++ b/src/browser/menu/linux.js @@ -1,5 +1,11 @@ import { shell } from 'electron'; // eslint-disable-line import/no-unresolved +function sendMessage(win, message) { + if (win) { + win.webContents.send(message); + } +} + export function buildTemplate(app, buildNewWindow, appConfig) { return [ @@ -14,12 +20,12 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'New Tab', accelerator: 'Ctrl+T', - click: (item, win) => win.webContents.send('sqlectron:new-tab'), + click: (item, win) => sendMessage(win, 'sqlectron:new-tab'), }, { label: 'Close Tab', accelerator: 'Ctrl+W', - click: (item, win) => win.webContents.send('sqlectron:close-tab'), + click: (item, win) => sendMessage(win, 'sqlectron:close-tab'), }, { type: 'separator', @@ -27,7 +33,7 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Save Query', accelerator: 'Ctrl+S', - click: (item, win) => win.webContents.send('sqlectron:save-query'), + click: (item, win) => sendMessage(win, 'sqlectron:save-query'), }, { type: 'separator', @@ -45,17 +51,17 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Execute', accelerator: 'Ctrl+Enter', - click: (item, win) => win.webContents.send('sqlectron:query-execute'), + click: (item, win) => sendMessage(win, 'sqlectron:query-execute'), }, { label: 'Execute', accelerator: 'Ctrl+R', - click: (item, win) => win.webContents.send('sqlectron:query-execute'), + click: (item, win) => sendMessage(win, 'sqlectron:query-execute'), }, { label: 'Focus Query Editor', accelerator: 'Shift+Ctrl+0', - click: (item, win) => win.webContents.send('sqlectron:query-focus'), + click: (item, win) => sendMessage(win, 'sqlectron:query-focus'), }, ], }, @@ -118,12 +124,12 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Search databases', accelerator: 'Shift+Ctrl+9', - click: (item, win) => win.webContents.send('sqlectron:toggle-database-search'), + click: (item, win) => sendMessage(win, 'sqlectron:toggle-database-search'), }, { label: 'Search database objects', accelerator: 'Ctrl+9', - click: (item, win) => win.webContents.send('sqlectron:toggle-database-objects-search'), + click: (item, win) => sendMessage(win, 'sqlectron:toggle-database-objects-search'), }, ], }, diff --git a/src/browser/menu/win32.js b/src/browser/menu/win32.js index 501b83fc..0b9440da 100644 --- a/src/browser/menu/win32.js +++ b/src/browser/menu/win32.js @@ -1,5 +1,11 @@ import { shell } from 'electron'; // eslint-disable-line import/no-unresolved +function sendMessage(win, message) { + if (win) { + win.webContents.send(message); + } +} + export function buildTemplate(app, buildNewWindow, appConfig) { return [ @@ -14,12 +20,12 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'New Tab', accelerator: 'Ctrl+T', - click: (item, win) => win.webContents.send('sqlectron:new-tab'), + click: (item, win) => sendMessage(win, 'sqlectron:new-tab'), }, { label: 'Close Tab', accelerator: 'Ctrl+W', - click: (item, win) => win.webContents.send('sqlectron:close-tab'), + click: (item, win) => sendMessage(win, 'sqlectron:close-tab'), }, { type: 'separator', @@ -27,7 +33,7 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Save Query', accelerator: 'Ctrl+S', - click: (item, win) => win.webContents.send('sqlectron:save-query'), + click: (item, win) => sendMessage(win, 'sqlectron:save-query'), }, { type: 'separator', @@ -45,17 +51,17 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Execute', accelerator: 'Ctrl+Enter', - click: (item, win) => win.webContents.send('sqlectron:query-execute'), + click: (item, win) => sendMessage(win, 'sqlectron:query-execute'), }, { label: 'Execute', accelerator: 'Ctrl+R', - click: (item, win) => win.webContents.send('sqlectron:query-execute'), + click: (item, win) => sendMessage(win, 'sqlectron:query-execute'), }, { label: 'Focus Query Editor', accelerator: 'Shift+Ctrl+0', - click: (item, win) => win.webContents.send('sqlectron:query-focus'), + click: (item, win) => sendMessage(win, 'sqlectron:query-focus'), }, ], }, @@ -118,12 +124,12 @@ export function buildTemplate(app, buildNewWindow, appConfig) { { label: 'Search databases', accelerator: 'Shift+Ctrl+9', - click: (item, win) => win.webContents.send('sqlectron:toggle-database-search'), + click: (item, win) => sendMessage(win, 'sqlectron:toggle-database-search'), }, { label: 'Search database objects', accelerator: 'Ctrl+9', - click: (item, win) => win.webContents.send('sqlectron:toggle-database-objects-search'), + click: (item, win) => sendMessage(win, 'sqlectron:toggle-database-objects-search'), }, ], },