From 03c7cc6503bada68b9851925c72788e5a588ab8d Mon Sep 17 00:00:00 2001 From: Peter Fajdiga Date: Sun, 21 Jan 2024 18:37:34 +0100 Subject: [PATCH] Desktop.scrollToRange: simplify --- src/layout/Desktop.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/layout/Desktop.ts b/src/layout/Desktop.ts index 2bd118f..9706985 100644 --- a/src/layout/Desktop.ts +++ b/src/layout/Desktop.ts @@ -74,7 +74,20 @@ class Desktop { } public scrollToRange(range: Desktop.Range) { - this.setScroll(this.calculateVisibleRange(range).getLeft(), true); + const left = range.getLeft(); + const right = range.getRight(); + const initialVisibleRange = this.getCurrentVisibleRange(); + + let targetScrollX: number; + if (left < initialVisibleRange.getLeft()) { + targetScrollX = left; + } else if (right > initialVisibleRange.getRight()) { + targetScrollX = right - this.tilingArea.width; + } else { + targetScrollX = initialVisibleRange.getLeft(); + } + + this.setScroll(targetScrollX, false); } public scrollCenterRange(range: Desktop.Range) {