Skip to content

Commit

Permalink
fixes #13264
Browse files Browse the repository at this point in the history
  • Loading branch information
joaomoreno committed Oct 7, 2016
1 parent 3d9e2e3 commit e240ede
Showing 1 changed file with 20 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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,
Expand All @@ -53,7 +53,6 @@ export class ReleaseNotesEditor extends BaseEditor {
@IModeService private modeService: IModeService
) {
super(ReleaseNotesEditor.ID, telemetryService);
this.disposables = [];
}

createEditor(parent: Builder): void {
Expand All @@ -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)
Expand All @@ -89,27 +89,36 @@ 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));
});
}

layout(): void {
// noop
}

focus(): void {
if (!this.webview) {
return;
}

this.webview.focus();
}

dispose(): void {
this.disposables = dispose(this.disposables);
this.contentDisposables = dispose(this.contentDisposables);
super.dispose();
}
}

0 comments on commit e240ede

Please sign in to comment.