Reduction forthcoming.
Created attachment 14483 [details] Demo of the problem... just start typing and hitting enter.
Created attachment 14484 [details] Patch to improve painting This patch makes continuation painting be done by the containing block of the entire continuation run. If any component of the continuation needs to paint an outline, it will schedule the paint with the enclosing block who will then paint it. This patch preserves the old paint path when a layer is present. I also patched absoluteOutlineBox and absoluteClippedOverflowRect so that blocks in the continuation will assume they have outlines if the inline that generated them does.
Created attachment 14485 [details] Patch with layout test Added a layer paint test. I will also turn the attachment into an editing layout test.
+<p><span>Content before<h3>Middle</h3>No content after.</span></p> "No content after." is... content ;-)
Details.... :)
Comment on attachment 14485 [details] Patch with layout test + if (table->isEmpty()) + return; + + RenderFlowSequencedSet* continuations = table->get(this); + if (!continuations) + return; is the isEmpty() check necessary given we also check the result of get? Looks good, i'd like you to run the pixel tests though, and (you'll hate me for this) manually check any pixel tests that fail
Fixed in r21397.