diff --git a/app/renderer/js/components/webview.js b/app/renderer/js/components/webview.js index 1350d667..108268e0 100644 --- a/app/renderer/js/components/webview.js +++ b/app/renderer/js/components/webview.js @@ -170,7 +170,13 @@ class WebView extends BaseComponent { focus() { // focus Webview and it's contents when Window regain focus. const webContents = this.$el.getWebContents(); - if (webContents && !webContents.isFocused()) { + // HACK: webContents.isFocused() seems to be true even without the element + // being in focus. So, we check against `document.activeElement`. + if (webContents && this.$el !== document.activeElement) { + // HACK: Looks like blur needs to be called on the previously focused + // element to transfer focus correctly, in Electron v3.0.10 + // See https://github.com/electron/electron/issues/15718 + document.activeElement.blur(); this.$el.focus(); webContents.focus(); }