From 1af9eab604c795146336005f2a23c15619cbbb2b Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 21 Feb 2019 15:59:05 -0800 Subject: [PATCH] Make sure we restore IgnoreMenuShortcuts on re-focus Fixes #67879 --- .../webview/electron-browser/webviewElement.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts index 1dd864c51c9..5a287448892 100644 --- a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts @@ -140,6 +140,9 @@ class SvgBlocker extends Disposable { } class WebviewKeyboardHandler extends Disposable { + + private _ignoreMenuShortcut = false; + constructor( private readonly _webview: Electron.WebviewTag ) { @@ -150,8 +153,9 @@ class WebviewKeyboardHandler extends Disposable { const contents = this.getWebContents(); if (contents) { contents.on('before-input-event', (_event, input) => { - if (input.type === 'keyDown') { - this.setIgnoreMenuShortcuts(input.control || input.meta); + if (input.type === 'keyDown' && document.activeElement === this._webview) { + this._ignoreMenuShortcut = input.control || input.meta; + this.setIgnoreMenuShortcuts(this._ignoreMenuShortcut); } }); } @@ -167,6 +171,10 @@ class WebviewKeyboardHandler extends Disposable { this.handleKeydown(event.args[0]); return; + case 'did-focus': + this.setIgnoreMenuShortcuts(this._ignoreMenuShortcut); + break; + case 'did-blur': this.setIgnoreMenuShortcuts(false); return; -- GitLab