From e580acf97990b864bd9bd6172175ca55913f885c Mon Sep 17 00:00:00 2001 From: Peter Fajdiga Date: Fri, 25 Aug 2023 12:46:01 +0200 Subject: [PATCH] update column widths after screen size change --- src/layout/Column.ts | 13 +++++++++++++ src/layout/Grid.ts | 1 + 2 files changed, 14 insertions(+) diff --git a/src/layout/Column.ts b/src/layout/Column.ts index a54f5df..40227ec 100644 --- a/src/layout/Column.ts +++ b/src/layout/Column.ts @@ -108,6 +108,19 @@ class Column { this.setWidth(this.width + widthDelta, setPreferred); } + public updateWidth() { + let minErr = Infinity; + let closestPreferredWidth = this.width; + for (const window of this.windows.iterator()) { + const err = Math.abs(window.client.preferredWidth - this.width); + if (err < minErr) { + minErr = err; + closestPreferredWidth = window.client.preferredWidth; + } + } + this.setWidth(closestPreferredWidth, false); + } + // returns x position of left edge in grid space public getLeft() { return this.gridX; diff --git a/src/layout/Grid.ts b/src/layout/Grid.ts index 2ea36b6..4bad8cf 100644 --- a/src/layout/Grid.ts +++ b/src/layout/Grid.ts @@ -276,6 +276,7 @@ class Grid { public onScreenSizeChanged() { for (const column of this.columns.iterator()) { + column.updateWidth(); column.resizeWindows(); } }