feat(word): add visual pageless view mode#53
Draft
juliusknorr wants to merge 2 commits into
Draft
Conversation
Assisted-by: ClaudeCode:claude-opus-4-8 Signed-off-by: Julius Knorr <jus@bitgrid.net>
Assisted-by: ClaudeCode:claude-opus-4-8 Signed-off-by: Julius Knorr <jus@bitgrid.net>
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.
Pageless view for the Word editor (issue #2553).
Adds a per-view "pageless" flag that renders a multi-page document as one continuous sheet, without changing internal pagination. Mirrors the existing Multiple Pages view mode.
Changes
WordControlgainsisPagelessModeplusgetPageGapVer()/getPageGapHor()accessors that return0when pageless; the inter-page gap reads inCalculateDocumentSize/OnCalculatePagesPlacenow go through them, collapsing the grey gaps.CPage.Drawskips the per-page outline (strokeColor = undefined) when pageless.SetPagelessMode/GetPagelessMode(modelled onSet/GetMultipageViewMode); the setter clears the page cache and re-fires layout so the outline/gap change repaints.Notes
True continuous reflow (future, out of scope here)
Documented now so Phase 1 doesn't paint us into a corner. The engine already has a pluggable layout architecture that is the right insertion point:
CDocumentLayoutBase(word/Editor/Layout/Base.js) definesGetPageContentFrame/GetColumnContentFrame, whoseYLimitis what forces content onto the next page.CDocumentPrintViewandCDocumentReadView(Layout/PrintView.js,Layout/ReadView.js) are registered inCDocumentatDocument.js:1207-1212(this.Layouts = {Print, Read}; this.Layout = this.Layouts.Print;) and swapped via SetDocumentReadMode(Document.js:17049`).Phase 2 would add
CDocumentPagelessViewreturning a near-infiniteYLimit(single ever-growing page, no page breaks), register it inthis.Layouts, add a SetDocumentPagelessModeswap method followingSetDocumentReadMode, and decide header/footer and section-break handling. The Phase-1 API method (SetPagelessMode`) can later route to this layout swap so the UI contract stays stable.Deferred background colour would extend
getPageBackgroundColor(api.js:14248-14254) plus a colour-picker control inViewTab.