Open Bug 683043 Opened 10 years ago Updated 5 months ago
reimplement forced page breaks (page-break-before / page-break-after) (kill ns
Page Break Frame)
The current way we handle page-break-before: always; and page-break-after: always; is to create a special frame that expands to fill the height of the page. This bug is to rip out that code and replace it with another approach that simply pushes frames out during reflow. Benefits: - No problems from nsPageBreakFrame showing up in unexpected places - Can correctly pass through multi-col elements ( bug 412563 ) - Better architecture to tackle other page-break controls ( bug 132035 )
I look forward to a detailed design that handles break priorities :-).
That's technically out-of-scope for this bug. :) There are no priorities for forced breaks: they just happen.
Oh hmm. I thought you could override "always" with "avoid" in some cases, but I guess not. Good, that makes this bug easier :-).
This is about as far as I got before getting stuck on nsReflowStatus (bug 775624). It's just some exploratory notes to myself; possibly only the CombineBreakTypes part is useful. Anyway, the idea is that nsReflowStatus would be expanded to have page break types. These would be used during layout: a frame with a forced break-after would return its break type in its reflow status, and the parent would then push out the next sibling (if any) and propagate the break status up.
Assignee: fantasai.bugs → nobody
Summary: reimplement forced page breaks (page-break-before / page-break-after) → reimplement forced page breaks (page-break-before / page-break-after) (kill nsPageBreakFrame)
You need to log in before you can comment on or make changes to this bug.