From e839ec02ccf3acaa6e84fab73ba58a2d49205107 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 19 Mar 2018 15:18:37 -0700 Subject: [PATCH] Make find widget opt-in for webviews Fixes #44597 --- extensions/markdown/src/features/preview.ts | 1 + src/vs/vscode.proposed.d.ts | 7 +++++++ .../update/electron-browser/releaseNotesEditor.ts | 2 +- .../parts/webview/electron-browser/webviewEditor.ts | 12 ++++++------ 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/extensions/markdown/src/features/preview.ts b/extensions/markdown/src/features/preview.ts index 5aef6b80c8f..3b2cc65e932 100644 --- a/extensions/markdown/src/features/preview.ts +++ b/extensions/markdown/src/features/preview.ts @@ -48,6 +48,7 @@ export class MarkdownPreview { previewColumn, { enableScripts: true, enableCommandUris: true, + enableFindWidget: true, localResourceRoots: this.getLocalResourceRoots(_resource) }); diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 371ccf3eeb6..3884cffdbd1 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -528,6 +528,13 @@ declare module 'vscode' { */ readonly enableCommandUris?: boolean; + /** + * Should the find widget be enabled in the webview? + * + * Defaults to false. + */ + readonly enableFindWidget?: boolean; + /** * Should the webview's context be kept around even when the webview is no longer visible? * diff --git a/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts b/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts index 9753acea7f4..44f6a32151d 100644 --- a/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts +++ b/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts @@ -84,7 +84,7 @@ export class ReleaseNotesManager { } } else { const uri = URI.parse('release-notes:' + version); - this._currentReleaseNotes = new WebviewInput(uri, title, { tryRestoreScrollPosition: true }, html, { + this._currentReleaseNotes = new WebviewInput(uri, title, { tryRestoreScrollPosition: true, enableFindWidget: true }, html, { onDidClickLink: uri => this.onDidClickLink(uri), onDispose: () => { this._currentReleaseNotes = undefined; } }, this._partService); diff --git a/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts b/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts index 6b5220bb581..be6570114a5 100644 --- a/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts +++ b/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts @@ -3,8 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable, } from 'vs/base/common/lifecycle'; import { EditorOptions } from 'vs/workbench/common/editor'; @@ -199,10 +197,12 @@ export class WebviewEditor extends BaseWebviewEditor { this._onDidFocusWebview.fire(); }); - this._contextKeyService = this._contextKeyService.createScoped(this.webviewContent); - this.contextKey = KEYBINDING_CONTEXT_WEBVIEWEDITOR_FOCUS.bindTo(this._contextKeyService); - this.findInputFocusContextKey = KEYBINDING_CONTEXT_WEBVIEWEDITOR_FIND_WIDGET_INPUT_FOCUSED.bindTo(this._contextKeyService); - this.findWidgetVisible = KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_VISIBLE.bindTo(this._contextKeyService); + if (input.options.enableFindWidget) { + this._contextKeyService = this._contextKeyService.createScoped(this.webviewContent); + this.contextKey = KEYBINDING_CONTEXT_WEBVIEWEDITOR_FOCUS.bindTo(this._contextKeyService); + this.findInputFocusContextKey = KEYBINDING_CONTEXT_WEBVIEWEDITOR_FIND_WIDGET_INPUT_FOCUSED.bindTo(this._contextKeyService); + this.findWidgetVisible = KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_VISIBLE.bindTo(this._contextKeyService); + } this._webview = new Webview( this._partService.getContainer(Parts.EDITOR_PART), -- GitLab