提交 2fa4a935 编写于 作者: J Joao Moreno

fixes #13264

上级 26b36f39
......@@ -7,7 +7,7 @@
import { TPromise } from 'vs/base/common/winjs.base';
import { marked } from 'vs/base/common/marked/marked';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle';
import { Builder } from 'vs/base/browser/builder';
import { append, $ } from 'vs/base/browser/dom';
import { BaseEditor } from 'vs/workbench/browser/parts/editor/baseEditor';
......@@ -39,9 +39,9 @@ export class ReleaseNotesEditor extends BaseEditor {
static ID: string = 'workbench.editor.releaseNotes';
private content: HTMLElement;
private webview: WebView;
private contentDisposables: IDisposable[] = [];
private disposables: IDisposable[];
constructor(
@ITelemetryService telemetryService: ITelemetryService,
......@@ -53,7 +53,6 @@ export class ReleaseNotesEditor extends BaseEditor {
@IModeService private modeService: IModeService
) {
super(ReleaseNotesEditor.ID, telemetryService);
this.disposables = [];
}
createEditor(parent: Builder): void {
......@@ -64,6 +63,7 @@ export class ReleaseNotesEditor extends BaseEditor {
setInput(input: ReleaseNotesInput, options: EditorOptions): TPromise<void> {
const { text } = input;
this.contentDisposables = dispose(this.contentDisposables);
this.content.innerHTML = '';
return super.setInput(input, options)
......@@ -89,18 +89,19 @@ export class ReleaseNotesEditor extends BaseEditor {
})
.then(renderBody)
.then<void>(body => {
const webview = new WebView(
this.webview = new WebView(
this.content,
document.querySelector('.monaco-editor-background')
);
webview.baseUrl = `https://code.visualstudio.com/raw/`;
webview.style(this.themeService.getColorTheme());
webview.contents = [body];
this.webview.baseUrl = `https://code.visualstudio.com/raw/`;
this.webview.style(this.themeService.getColorTheme());
this.webview.contents = [body];
webview.onDidClickLink(link => this.openerService.open(link), null, this.contentDisposables);
this.themeService.onDidColorThemeChange(themeId => webview.style(themeId), null, this.contentDisposables);
this.contentDisposables.push(webview);
this.webview.onDidClickLink(link => this.openerService.open(link), null, this.contentDisposables);
this.themeService.onDidColorThemeChange(themeId => this.webview.style(themeId), null, this.contentDisposables);
this.contentDisposables.push(this.webview);
this.contentDisposables.push(toDisposable(() => this.webview = null));
});
}
......@@ -108,8 +109,16 @@ export class ReleaseNotesEditor extends BaseEditor {
// noop
}
focus(): void {
if (!this.webview) {
return;
}
this.webview.focus();
}
dispose(): void {
this.disposables = dispose(this.disposables);
this.contentDisposables = dispose(this.contentDisposables);
super.dispose();
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册