2006-03-25 Mitz Pettel <opendarwin.org@mitzpettel.com>
Reviewed by darin. Landed by eseidel.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7916
Box repaint rect does not include the left overflow
* manual-tests/left-overflow-repaint.html: Added.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::overflowRect): Changed m_overflowWidth and m_overflowHeight
to overflowWidth() and overflowHeight() since RenderTable overrides the latter.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::getAbsoluteRepaintRect): Include top and left overflows.
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::getAbsoluteRepaintRect): Removed redundant code.
* rendering/RenderTableCell.cpp: Removed subclass implementation of
getAbsoluteRepaintRect().
* rendering/RenderTableCell.h:
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren): Include left overflow in repaint rect.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/rendering/bidi.cpp b/WebCore/rendering/bidi.cpp
index a0ba4fa..4a2c805 100644
--- a/WebCore/rendering/bidi.cpp
+++ b/WebCore/rendering/bidi.cpp
@@ -1713,7 +1713,8 @@
checkLinesForOverflow();
if (useRepaintRect) {
- repaintRect.setWidth(kMax((int)m_width, m_overflowWidth));
+ repaintRect.setX(m_overflowLeft);
+ repaintRect.setWidth(kMax((int)m_width, m_overflowWidth) - m_overflowLeft);
if (repaintRect.height() == 0)
repaintRect.setHeight(kMax(oldLineBottom, m_overflowHeight) - repaintRect.y());
}