| Index: Source/core/frame/FrameView.cpp
|
| diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp
|
| index 95f79cbc724c033eeb430f97c5e0db39788b65c4..50d650980e1332482f835e7d77dacf887179f1bf 100644
|
| --- a/Source/core/frame/FrameView.cpp
|
| +++ b/Source/core/frame/FrameView.cpp
|
| @@ -942,7 +942,11 @@ void FrameView::layout(bool allowSubtree)
|
| m_size = LayoutSize(layoutSize().width(), layoutSize().height());
|
|
|
| if (oldSize != m_size) {
|
| - shouldDoFullLayout = true;
|
| + if (!renderView()->needsResizeLayoutOnly()
|
| + || (renderView()->style()->isHorizontalWritingMode()
|
| + ? (oldSize.width() != m_size.width()) : (oldSize.height() != m_size.height())))
|
| + shouldDoFullLayout = true;
|
| +
|
| if (!m_firstLayout) {
|
| RenderBox* rootRenderer = document->documentElement() ? document->documentElement()->renderBox() : 0;
|
| RenderBox* bodyRenderer = rootRenderer && document->body() ? document->body()->renderBox() : 0;
|
| @@ -1746,7 +1750,7 @@ void FrameView::repaintContentRectangle(const IntRect& r)
|
| void FrameView::contentsResized()
|
| {
|
| ScrollView::contentsResized();
|
| - setNeedsLayout();
|
| + setNeedsResizeLayout();
|
| }
|
|
|
| void FrameView::scrollbarExistenceDidChange()
|
| @@ -1888,6 +1892,16 @@ void FrameView::setNeedsLayout()
|
| renderView->setNeedsLayout();
|
| }
|
|
|
| +void FrameView::setNeedsResizeLayout()
|
| +{
|
| + if (RenderView* renderView = this->renderView()) {
|
| + if (m_firstLayout || m_frame->document()->printing())
|
| + renderView->setNeedsLayout();
|
| + else
|
| + renderView->setNeedsResizeLayout();
|
| + }
|
| +}
|
| +
|
| bool FrameView::isTransparent() const
|
| {
|
| return m_isTransparent;
|
|
|