diff --git a/src/actions.ts b/src/actions.ts index ea537af..e59ac52 100644 --- a/src/actions.ts +++ b/src/actions.ts @@ -216,7 +216,7 @@ function initActions(world: World) { } const column = focusedWindow.column; const grid = column.grid; - grid.scrollToColumn(column); + grid.scrollCenterColumn(column); grid.arrange(); }, diff --git a/src/keyBindings/definition.ts b/src/keyBindings/definition.ts index 0f69c61..bb844f2 100644 --- a/src/keyBindings/definition.ts +++ b/src/keyBindings/definition.ts @@ -121,7 +121,7 @@ const keyBindings: KeyBinding[] = [ }, { "name": "grid-scroll-focused", - "description": "Scroll to focused window", + "description": "Center focused window", "defaultKeySequence": "Meta+Alt+Return", "action": "gridScrollFocused", }, diff --git a/src/layout/Grid.ts b/src/layout/Grid.ts index 97e0807..3f0b25d 100644 --- a/src/layout/Grid.ts +++ b/src/layout/Grid.ts @@ -153,6 +153,12 @@ class Grid { } } + scrollCenterColumn(column: Column) { + const windowCenter = column.gridX + column.width / 2 + this.world.config.gapsInnerHorizontal - this.scrollX; // in screen space + const screenCenter = this.tilingArea.x + this.tilingArea.width / 2; + this.adjustScroll(Math.round(windowCenter - screenCenter), false); + } + autoAdjustScroll() { const focusedWindow = this.world.getFocusedWindow(); if (focusedWindow === null) {