From db79690c10f471b8255da52511b20e52cd67ae75 Mon Sep 17 00:00:00 2001 From: Andrew Lo Date: Fri, 5 Aug 2016 10:34:31 -0400 Subject: [PATCH] fixes #511 When scrolling down to reveal selected node, take horizontal scrollbar height into account. Otherwise, scrollbar covers the revealed node. --- src/frontend/components/component-tree/component-tree.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/frontend/components/component-tree/component-tree.ts b/src/frontend/components/component-tree/component-tree.ts index ae443f856..c3fc82fc7 100644 --- a/src/frontend/components/component-tree/component-tree.ts +++ b/src/frontend/components/component-tree/component-tree.ts @@ -27,8 +27,12 @@ export class ComponentTree { scrollToViewIfNeeded(node) { const selectedNodeBound = node.getBoundingClientRect(); const treeViewBound = this.el.nativeElement.getBoundingClientRect(); + const scrollBarHeight = this.el.nativeElement.offsetHeight - + this.el.nativeElement.clientHeight; const topOffset = selectedNodeBound.top - treeViewBound.top; - const bottomOffset = selectedNodeBound.bottom - treeViewBound.bottom; + const bottomOffset = selectedNodeBound.bottom - treeViewBound.bottom + + scrollBarHeight; + if (topOffset < 0) { // node is too high this.el.nativeElement.scrollTop += topOffset; } else if (bottomOffset > 0) { // node is too low