提交 b60267b1 编写于 作者: M Matt Bierner

Delete webview input on dispose

上级 103d1064
......@@ -328,6 +328,7 @@ class WebviewEditor extends BaseWebviewEditor {
this.webviewContent.style.visibility = 'hidden';
}
}
super.setEditorVisible(visible, position);
}
......@@ -448,7 +449,11 @@ export class MainThreadWebviews implements MainThreadWebviewsShape {
const webviewInput = WebviewInput.create(URI.revive(uri), title, column, options, '', {
onMessage: message => this._proxy.$onMessage(handle, message),
onDidChangePosition: position => this._proxy.$onDidChangePosition(handle, position),
onDispose: () => this._proxy.$onDidDisposeWeview(handle),
onDispose: () => {
this._proxy.$onDidDisposeWeview(handle).then(() => {
this._webviews.delete(handle);
});
},
onDidClickLink: (link, options) => this.onDidClickLink(link, options)
}, this._partService);
......
......@@ -355,7 +355,7 @@ export interface MainThreadWebviewsShape extends IDisposable {
export interface ExtHostWebviewsShape {
$onMessage(handle: WebviewHandle, message: any): void;
$onDidChangeActiveWeview(handle: WebviewHandle | undefined): void;
$onDidDisposeWeview(handle: WebviewHandle): void;
$onDidDisposeWeview(handle: WebviewHandle): Thenable<void>;
$onDidChangePosition(handle: WebviewHandle, newPosition: EditorPosition): void;
}
......
......@@ -150,11 +150,12 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
this._onDidChangeActiveWebview.fire(webview);
}
$onDidDisposeWeview(handle: WebviewHandle): void {
$onDidDisposeWeview(handle: WebviewHandle): Thenable<void> {
const webview = this._webviews.get(handle);
if (webview) {
webview.onDisposeEmitter.fire();
}
return Promise.resolve(void 0);
}
$onDidChangePosition(handle: WebviewHandle, newPosition: Position): void {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册