From fab2803943dd7999a676857f57345ca188caa20a Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 21 Aug 2019 17:13:33 +0200 Subject: [PATCH] list expose scrollLeft --- src/vs/base/browser/ui/list/listView.ts | 16 ++++++++++++++++ src/vs/base/browser/ui/list/listWidget.ts | 8 ++++++++ src/vs/base/browser/ui/tree/abstractTree.ts | 8 ++++++++ src/vs/base/browser/ui/tree/asyncDataTree.ts | 8 ++++++++ 4 files changed, 40 insertions(+) diff --git a/src/vs/base/browser/ui/list/listView.ts b/src/vs/base/browser/ui/list/listView.ts index 4f5394f773d..8ae8867bf64 100644 --- a/src/vs/base/browser/ui/list/listView.ts +++ b/src/vs/base/browser/ui/list/listView.ts @@ -683,6 +683,22 @@ export class ListView implements ISpliceable, IDisposable { this.scrollableElement.setScrollPosition({ scrollTop }); } + getScrollLeft(): number { + const scrollPosition = this.scrollableElement.getScrollPosition(); + return scrollPosition.scrollLeft; + } + + setScrollLeftt(scrollLeft: number): void { + if (this.scrollableElementUpdateDisposable) { + this.scrollableElementUpdateDisposable.dispose(); + this.scrollableElementUpdateDisposable = null; + this.scrollableElement.setScrollDimensions({ scrollWidth: this.scrollWidth }); + } + + this.scrollableElement.setScrollPosition({ scrollLeft }); + } + + get scrollTop(): number { return this.getScrollTop(); } diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts index 6e82c6de867..15b21e3b9b0 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -1307,6 +1307,14 @@ export class List implements ISpliceable, IDisposable { this.view.setScrollTop(scrollTop); } + get scrollLeft(): number { + return this.view.getScrollLeft(); + } + + set scrollLeft(scrollLeft: number) { + this.view.setScrollLeftt(scrollLeft); + } + get scrollHeight(): number { return this.view.scrollHeight; } diff --git a/src/vs/base/browser/ui/tree/abstractTree.ts b/src/vs/base/browser/ui/tree/abstractTree.ts index 7402d493a98..1aa9c5363e2 100644 --- a/src/vs/base/browser/ui/tree/abstractTree.ts +++ b/src/vs/base/browser/ui/tree/abstractTree.ts @@ -1319,6 +1319,14 @@ export abstract class AbstractTree implements IDisposable this.view.scrollTop = scrollTop; } + get scrollLeft(): number { + return this.view.scrollTop; + } + + set scrollLeft(scrollLeft: number) { + this.view.scrollLeft = scrollLeft; + } + get scrollHeight(): number { return this.view.scrollHeight; } diff --git a/src/vs/base/browser/ui/tree/asyncDataTree.ts b/src/vs/base/browser/ui/tree/asyncDataTree.ts index b26b80d2c49..9c6bea61a41 100644 --- a/src/vs/base/browser/ui/tree/asyncDataTree.ts +++ b/src/vs/base/browser/ui/tree/asyncDataTree.ts @@ -400,6 +400,14 @@ export class AsyncDataTree implements IDisposable this.tree.scrollTop = scrollTop; } + get scrollLeft(): number { + return this.tree.scrollLeft; + } + + set scrollLeft(scrollLeft: number) { + this.tree.scrollLeft = scrollLeft; + } + get scrollHeight(): number { return this.tree.scrollHeight; } -- GitLab