RenderBox::computeAbsoluteRepaintRect() has a horrible hack that does a repaint if the object has a reflection. This is a horrible hack, and ugly for the reasons explained in the comments.
Created attachment 26322 [details] Patch, changelog, testcase
Comment on attachment 26322 [details] Patch, changelog, testcase > + if (hasReflection()) { > + IntRect rectInReflection = reflectedRect(rect); > + rect.unite(rectInReflection); > } I think this would read better without the local variable: if (hasReflection()) rect.unite(reflectedRect(rect)); > + IntRect result; > + if (!m_style->boxReflect()) > + return result; > + > + IntRect box = borderBox(); > + result = r; I don't think it's so great to use that empty result in this way. I'd write it like this: if (!m_style->boxReflect()) return IntRect(); IntRect box = borderBox(); IntRect result = r; r=me
Committing to http://svn.webkit.org/repository/webkit/trunk ... M LayoutTests/ChangeLog A LayoutTests/fast/repaint/reflection-redraw.html A LayoutTests/platform/mac/fast/repaint/reflection-redraw-expected.checksum A LayoutTests/platform/mac/fast/repaint/reflection-redraw-expected.png A LayoutTests/platform/mac/fast/repaint/reflection-redraw-expected.txt M WebCore/ChangeLog M WebCore/rendering/RenderBox.cpp M WebCore/rendering/RenderObject.cpp M WebCore/rendering/RenderObject.h Committed r39522