This commit is contained in:
rebornix
2020-08-05 17:57:58 -07:00
parent dbd706d948
commit c74b0c2ae4
3 changed files with 9 additions and 5 deletions
@@ -864,7 +864,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
return;
}
this._webview?.updateViewScrollTop(-e.scrollTop, []);
this._webview?.updateViewScrollTop(-e.scrollTop, true, []);
this._webviewTransparentCover!.style.top = `${e.scrollTop}px`;
}));
@@ -912,7 +912,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
removedItems.forEach(output => this._webview?.removeInset(output));
if (updateItems.length) {
this._webview?.updateViewScrollTop(-scrollTop, updateItems);
this._webview?.updateViewScrollTop(-scrollTop, false, updateItems);
}
}
});
@@ -1535,7 +1535,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
const cellTop = this._list?.getAbsoluteTopOfElement(cell) || 0;
const scrollTop = this._list?.scrollTop || 0;
this._webview!.updateViewScrollTop(-scrollTop, [{ cell: cell, output: output, cellTop: cellTop }]);
this._webview!.updateViewScrollTop(-scrollTop, true, [{ cell: cell, output: output, cellTop: cellTop }]);
}
}
@@ -107,6 +107,7 @@ export interface IContentWidgetTopRequest {
export interface IViewScrollTopRequestMessage {
type: 'view-scroll';
top?: number;
forceDisplay: boolean;
widgets: IContentWidgetTopRequest[];
version: number;
}
@@ -591,7 +592,7 @@ ${loaderJs}
return true;
}
updateViewScrollTop(top: number, items: { cell: CodeCellViewModel, output: IProcessedOutput, cellTop: number }[]) {
updateViewScrollTop(top: number, forceDisplay: boolean, items: { cell: CodeCellViewModel, output: IProcessedOutput, cellTop: number }[]) {
if (this._disposed) {
return;
}
@@ -616,6 +617,7 @@ ${loaderJs}
top,
type: 'view-scroll',
version: version++,
forceDisplay,
widgets: widgets
});
}
@@ -413,7 +413,9 @@ function webviewPreloads() {
for (let i = 0; i < event.data.widgets.length; i++) {
const widget = document.getElementById(event.data.widgets[i].id)!;
widget.style.top = event.data.widgets[i].top + 'px';
widget.parentElement!.style.display = 'block';
if (event.data.forceDisplay) {
widget.parentElement!.style.display = 'block';
}
}
break;
}