diff --git a/src/Actions.ts b/src/Actions.ts index 0b9a495..84c2546 100644 --- a/src/Actions.ts +++ b/src/Actions.ts @@ -197,7 +197,7 @@ namespace Actions { } column.setWidth(newWidth, true); - desktop.scrollCenterVisible(column); + desktop.scrollCenterVisible(column, false); desktop.onLayoutChanged(); desktop.autoAdjustScroll(); }); @@ -246,7 +246,7 @@ namespace Actions { } column.setWidth(newWidth, true); - desktop.scrollCenterVisible(column); + desktop.scrollCenterVisible(column, true); desktop.onLayoutChanged(); desktop.autoAdjustScroll(); }); diff --git a/src/layout/Desktop.ts b/src/layout/Desktop.ts index 39abf14..b17bc60 100644 --- a/src/layout/Desktop.ts +++ b/src/layout/Desktop.ts @@ -78,10 +78,12 @@ class Desktop { this.adjustScroll(Math.round(windowCenter - screenCenter), false); } - public scrollCenterVisible(focusedColumn: Column) { + public scrollCenterVisible(focusedColumn: Column, prioritiseVisible: boolean) { const columnRange = new Desktop.ColumnRange(focusedColumn); const visibleRange = this.getCurrentVisibleRange(); - columnRange.addNeighbors(visibleRange, this.grid.config.gapsInnerHorizontal, column => column.isVisible(visibleRange, true)); + if (prioritiseVisible) { + columnRange.addNeighbors(visibleRange, this.grid.config.gapsInnerHorizontal, column => column.isVisible(visibleRange, true)); + } columnRange.addNeighbors(visibleRange, this.grid.config.gapsInnerHorizontal, () => true); this.scrollCenterRange(columnRange); } diff --git a/src/layout/ScrollerGrouped.ts b/src/layout/ScrollerGrouped.ts index 41bac03..f43bb2d 100644 --- a/src/layout/ScrollerGrouped.ts +++ b/src/layout/ScrollerGrouped.ts @@ -1,6 +1,6 @@ class ScrollerGrouped { public scrollToColumn(desktop: Desktop, column: Column) { - desktop.scrollCenterVisible(column); + desktop.scrollCenterVisible(column, true); } public clampScrollX(desktop: Desktop, x: number) {