| Index: Source/core/frame/FrameView.cpp
|
| diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp
|
| index ee80b731761f42a3606db9b37482da603273e82a..89e1ba33cf08b67f42abf1e855762ec78a8754af 100644
|
| --- a/Source/core/frame/FrameView.cpp
|
| +++ b/Source/core/frame/FrameView.cpp
|
| @@ -1059,29 +1059,28 @@ void FrameView::repaintTree(RenderObject* root)
|
|
|
| const LayoutRect& oldRepaintRect = renderer->oldRepaintRect();
|
| const LayoutRect& newRepaintRect = renderer->newRepaintRect();
|
| + LayoutRect oldOutlineRect;
|
| + LayoutRect newOutlineRect;
|
|
|
| - LayoutRect oldOutlineRect = oldRepaintRect;
|
| - oldOutlineRect.inflate(renderView()->oldMaximalOutlineSize());
|
| -
|
| - LayoutRect newOutlineRect = newRepaintRect;
|
| - newOutlineRect.inflate(renderView()->maximalOutlineSize());
|
| + if (renderer->hasOutline()) {
|
| + newOutlineRect = renderer->newOutlineRect();
|
| + oldOutlineRect = renderer->oldOutlineRect();
|
| + }
|
|
|
| // FIXME: Currently renderers with layers will get repainted when we call updateLayerPositionsAfterLayout.
|
| // That call should be broken apart to position the layers be done before
|
| // the repaintTree call so this will repaint everything.
|
| bool didFullRepaint = false;
|
| - if (!renderer->hasLayer()) {
|
| - if (!renderer->layoutDidGetCalled()) {
|
| - if (renderer->shouldDoFullRepaintAfterLayout()) {
|
| - renderer->repaint();
|
| - didFullRepaint = true;
|
| - }
|
| -
|
| - } else {
|
| - didFullRepaint = renderer->repaintAfterLayoutIfNeeded(renderer->containerForRepaint(),
|
| - renderer->shouldDoFullRepaintAfterLayout(), oldRepaintRect, oldOutlineRect,
|
| - &newRepaintRect, &newOutlineRect);
|
| + if (!renderer->layoutDidGetCalled()) {
|
| + if (renderer->shouldDoFullRepaintAfterLayout()) {
|
| + renderer->repaint();
|
| + didFullRepaint = true;
|
| }
|
| +
|
| + } else {
|
| + didFullRepaint = renderer->repaintAfterLayoutIfNeeded(renderer->containerForRepaint(),
|
| + renderer->shouldDoFullRepaintAfterLayout(), oldRepaintRect, oldOutlineRect,
|
| + &newRepaintRect, &newOutlineRect);
|
| }
|
|
|
| if (!didFullRepaint && renderer->shouldRepaintOverflowIfNeeded())
|
| @@ -1103,7 +1102,7 @@ void FrameView::repaintTree(RenderObject* root)
|
| listBox->repaintScrollbarIfNeeded();
|
| }
|
|
|
| - renderer->clearRepaintRects();
|
| + renderer->clearRepaintState();
|
| }
|
| renderView()->setOldMaximalOutlineSize(0);
|
|
|
|
|