提交 88fd5abf 编写于 作者: R rebornix

update scroll handler

上级 90ab42e7
......@@ -1311,7 +1311,7 @@ export class List<T> implements ISpliceable<T>, IDisposable {
this.eventBufferer.bufferEvents(() => this.spliceable.splice(start, deleteCount, elements));
}
public triggerScrollFromMouseWheelEvent(browserEvent: IMouseWheelEvent) {
triggerScrollFromMouseWheelEvent(browserEvent: IMouseWheelEvent) {
this.view.triggerScrollFromMouseWheelEvent(browserEvent);
}
......@@ -1587,7 +1587,11 @@ export class List<T> implements ISpliceable<T>, IDisposable {
}
}
getElementTop(index: number): number {
getAbsoluteTop(index: number): number {
if (index < 0 || index >= this.length) {
throw new ListError(this.user, `Invalid index ${index}`);
}
return this.view.elementTop(index);
}
......
......@@ -1478,7 +1478,7 @@ declare module 'vscode' {
}
//#endregion
//#region Language specific settings: https://github.com/microsoft/vscode/issues/26707
//#region color theme access
/**
......
......@@ -186,17 +186,17 @@ export class NotebookEditor extends BaseEditor implements NotebookHandler {
if (!this.webview!.mapping.has(cell.id)) {
let index = this.model!.getNotebook().cells.indexOf(cell.cell);
let top = this.list?.getElementTop(index) || 0;
let top = this.list?.getAbsoluteTop(index) || 0;
this.webview!.createContentWidget(cell, offset, shadowContent, top + offset);
this.webview!.outputMapping.set(cell.id + `-${outputIndex}`, true);
} else if (!this.webview!.outputMapping.has(cell.id + `-${outputIndex}`)) {
let index = this.model!.getNotebook().cells.indexOf(cell.cell);
let top = this.list?.getElementTop(index) || 0;
let top = this.list?.getAbsoluteTop(index) || 0;
this.webview!.outputMapping.set(cell.id + `-${outputIndex}`, true);
this.webview!.createContentWidget(cell, offset, shadowContent, top + offset);
} else {
let index = this.model!.getNotebook().cells.indexOf(cell.cell);
let top = this.list?.getElementTop(index) || 0;
let top = this.list?.getAbsoluteTop(index) || 0;
let scrollTop = this.list?.scrollTop || 0;
this.webview!.updateViewScrollTop(-scrollTop, [{ id: cell.id, top: top + offset }]);
......@@ -290,7 +290,7 @@ export class NotebookEditor extends BaseEditor implements NotebookHandler {
// const date = new Date();
this.webview?.mapping.forEach((item) => {
let index = this.model!.getNotebook().cells.indexOf(item.cell.cell);
let top = this.list?.getElementTop(index) || 0;
let top = this.list?.getAbsoluteTop(index) || 0;
let newTop = this.webview!.shouldRenderContentWidget(item.cell.id, top);
if (newTop !== undefined) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册