diff options
Diffstat (limited to 'WebCore/rendering/RenderView.cpp')
-rw-r--r-- | WebCore/rendering/RenderView.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/WebCore/rendering/RenderView.cpp b/WebCore/rendering/RenderView.cpp index 584e38a..c4a666f 100644 --- a/WebCore/rendering/RenderView.cpp +++ b/WebCore/rendering/RenderView.cpp @@ -133,12 +133,10 @@ void RenderView::layout() if (needsLayout()) RenderBlock::layout(); - // Reset overflowWidth and overflowHeight, since they act as a lower bound for docWidth() and docHeight(). - setOverflowWidth(width()); - setOverflowHeight(height()); - - setOverflowWidth(docWidth()); - setOverflowHeight(docHeight()); + // Reset overflow and then replace it with docWidth and docHeight. + m_overflow.clear(); + addLayoutOverflow(IntRect(0, 0, docWidth(), docHeight())); + ASSERT(layoutDelta() == IntSize()); ASSERT(m_layoutStateDisableCount == 0); @@ -472,6 +470,8 @@ void RenderView::setSelection(RenderObject* start, int startPos, RenderObject* e return; } + m_frameView->beginDeferredRepaints(); + // Have any of the old selected objects changed compared to the new selection? for (SelectedObjectMap::iterator i = oldSelectedObjects.begin(); i != oldObjectsEnd; ++i) { RenderObject* obj = i->first; @@ -523,6 +523,8 @@ void RenderView::setSelection(RenderObject* start, int startPos, RenderObject* e newInfo->repaint(); delete newInfo; } + + m_frameView->endDeferredRepaints(); } void RenderView::clearSelection() |