提交 31101e83 编写于 作者: R rebornix

no layout after list view being disposed.

上级 57e3fb23
......@@ -44,7 +44,7 @@ export class MainThreadNotebookDocument extends Disposable {
}));
}
async applyEdit(modelVersionId: number, edits: ICellEditOperation[]): Promise<boolean> {
async applyEdit(modelVersionId: number, edits: ICellEditOperation[], emitToExtHost: boolean): Promise<boolean> {
await this.notebookService.transformEditsOutputs(this.textModel, edits);
return this._textModel.$applyEdit(modelVersionId, edits);
}
......@@ -462,10 +462,10 @@ export class MainThreadNotebookController implements IMainNotebookController {
mainthreadNotebook.textModel.languages = data.languages;
mainthreadNotebook.textModel.metadata = data.metadata;
mainthreadNotebook.textModel.$applyEdit(mainthreadNotebook.textModel.versionId, [
await mainthreadNotebook.applyEdit(mainthreadNotebook.textModel.versionId, [
{ editType: CellEditType.Delete, count: mainthreadNotebook.textModel.cells.length, index: 0 },
{ editType: CellEditType.Insert, index: 0, cells: data.cells }
]);
], true);
}
return mainthreadNotebook.textModel;
}
......@@ -479,7 +479,7 @@ export class MainThreadNotebookController implements IMainNotebookController {
document.textModel.languages = backup.languages;
// restored from backup, update the text model without emitting any event to exthost
document.textModel.$applyEdit(document.textModel.versionId, [
await document.applyEdit(document.textModel.versionId, [
{
editType: CellEditType.Insert,
index: 0,
......@@ -558,7 +558,7 @@ export class MainThreadNotebookController implements IMainNotebookController {
let mainthreadNotebook = this._mapping.get(URI.from(resource).toString());
if (mainthreadNotebook) {
return await mainthreadNotebook.applyEdit(modelVersionId, edits);
return await mainthreadNotebook.applyEdit(modelVersionId, edits, true);
}
return false;
......
......@@ -527,6 +527,10 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
this.localStore.add(this.list!.onDidChangeContentHeight(() => {
DOM.scheduleAtNextAnimationFrame(() => {
if (this._isDisposed) {
return;
}
const scrollTop = this.list?.scrollTop || 0;
const scrollHeight = this.list?.scrollHeight || 0;
this.webview!.element.style.height = `${scrollHeight}px`;
......@@ -1330,7 +1334,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
}
this.localStore.clear();
this.list?.clear();
this.list?.dispose();
this.webview?.dispose();
this.overlayContainer.remove();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册