Resizing a list item does not properly repaint it's list marker. Seems to have regressed between r18756 and r18765 - likely http://trac.webkit.org/projects/webkit/changeset/18758.
Created attachment 13834 [details] Reduction
Actually, the regression happened in r18762.
Created attachment 13835 [details] Use the final horizontal overflows for repainting changed lines. Change log and repaint test included.
Comment on attachment 13835 [details] Use the final horizontal overflows for repainting changed lines. - IntRect repaintRect(0, 0, 0, 0); - if (useRepaintRect) { - repaintRect.setX(m_overflowLeft); - repaintRect.setWidth(m_overflowWidth - m_overflowLeft); - repaintRect.setY(repaintTop); - repaintRect.setHeight(repaintBottom - repaintTop); - } - Why is it ok to remove this part?
(In reply to comment #4) > (From update of attachment 13835 [details] [edit]) > - IntRect repaintRect(0, 0, 0, 0); > - if (useRepaintRect) { > - repaintRect.setX(m_overflowLeft); > - repaintRect.setWidth(m_overflowWidth - m_overflowLeft); > - repaintRect.setY(repaintTop); > - repaintRect.setHeight(repaintBottom - repaintTop); > - } > - > > Why is it ok to remove this part? > Because of the addition of this part: + if (!didFullRepaint && repaintTop != repaintBottom) { + IntRect repaintRect(m_overflowLeft, repaintTop, m_overflowWidth - m_overflowLeft, repaintBottom - repaintTop); What the patch does is it leaves layoutInlineChildren() to do the computation of the top and bottom of the repaint rect, but the left and right are determined afterwards in layoutBlock() when the final overflows are known.
Comment on attachment 13835 [details] Use the final horizontal overflows for repainting changed lines. r=me
Try to test editing a bit if you can with this change, since it really exercise the incremental line repaint code.
Committed revision 20636.