Keep table widths synchronized during and after window resize - #152
Open
YishenTu wants to merge 3 commits into
Open
Keep table widths synchronized during and after window resize#152YishenTu wants to merge 3 commits into
YishenTu wants to merge 3 commits into
Conversation
Apply width-dependent table styling before each physical resize callback returns, while coalescing ordinary width writes. Track fractional geometry, trailing hosted layout propagation, document height, and wide-table overlays with real AppKit regression coverage.
YishenTu
force-pushed
the
fix/live-table-resize
branch
from
August 13, 2026 05:04
c1982a9 to
9e05936
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rendered tables could retain an old width during window resizing because AppKit's nested event-tracking loop did not reliably service deferred restyles. This change completes table reflow synchronously during live resize by default and lets embedders defer that work until release with
rendersTablesDuringLiveResize = false.With deferred rendering enabled, table images stay unchanged during the drag and reflow when resize ends, without a debounce delay. A final width delivered later by SwiftUI hosting still updates synchronously when it arrives.
Implementation
Validation
swift test --arch arm64: 492 tests passed across 68 suites, including 22 table-width tests.Trade-off
The default behavior synchronously renders tables during each physical resize callback. Embedders that prioritize drag responsiveness can disable live table rendering; table images then retain their previous geometry until release. Both modes preserve immediate final-width synchronization.