mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-25 10:57:14 -06:00
* #2048: text above a float's anchor wraps around it A floating object joined the page's wrap areas only when layout reached its anchor paragraph, so paragraphs above the anchor ran behind a picture placed higher up the page (fixed on the page, or moved up from its paragraph). Layout now notes such floats and lays the pass out again (at most 3 times) with their wrap areas known from the page's start. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * #2048: early-float wrap settles when the anchor moves to the next page Review follow-up. Rewrap passes add to the wrap areas pages start with instead of replacing them, and a pass is done when every float found above its anchor sits inside the room its page started with. A float whose wrap pushes its own anchor onto the next page has no fixed point; the first page keeps the room and the float goes with its anchor, so the passes no longer swap between the two pages. The last allowed pass moves any float still not covered into its seeded room, or down to its paragraph's top, so the returned layout never has text under it. Tests: the reviewer's page-boundary case, and a last pass with nothing seeded keeping floats clear of earlier text. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P8veLveuUsJJm6UEcQPEuW * #2048: review — the early-float page-boundary case is pinned for 4 to 18 paragraphs Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012WEhZXSxzS8orX7f9J3qpr * #2048: review — a column break into another width keeps the floats where the first piece drew them Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012WEhZXSxzS8orX7f9J3qpr --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: aiongg <aiongtaigi@gmail.com>