A RenderContext confined to a fixed box (used by RowBlock's columns and BoxBlock's segments):
cursor.x pinned to the box's left edge, cursor.y tracked locally from the box's top edge
(advanceY moves only this box — the parent already reserved the full height and advances the
real cursor itself), margins/contentWidth describe the box. This is what lets a composite start
each column/segment back at the same top edge, which the real cursor can't do (PdfCursor.syncTo
never goes backwards) — the real cursor is never touched. ensureSpace is a no-op (space is
already reserved); syncCursor/forcePageBreak throw (their callers — table/section — are
rejected at build time by assertConfinedChildAllowed).
A RenderContext confined to a fixed box (used by RowBlock's columns and BoxBlock's segments): cursor.x pinned to the box's left edge, cursor.y tracked locally from the box's top edge (advanceY moves only this box — the parent already reserved the full height and advances the real cursor itself), margins/contentWidth describe the box. This is what lets a composite start each column/segment back at the same top edge, which the real cursor can't do (PdfCursor.syncTo never goes backwards) — the real cursor is never touched. ensureSpace is a no-op (space is already reserved); syncCursor/forcePageBreak throw (their callers — table/section — are rejected at build time by assertConfinedChildAllowed).