diff options
Diffstat (limited to 'WebCore/rendering/RenderView.h')
-rw-r--r-- | WebCore/rendering/RenderView.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/WebCore/rendering/RenderView.h b/WebCore/rendering/RenderView.h index b03312f..8f64766 100644 --- a/WebCore/rendering/RenderView.h +++ b/WebCore/rendering/RenderView.h @@ -54,8 +54,8 @@ public: // The same as the FrameView's layoutHeight/layoutWidth but with null check guards. int viewHeight() const; int viewWidth() const; - int viewLogicalWidth() const { return style()->isVerticalBlockFlow() ? viewWidth() : viewHeight(); } - int viewLogicalHeight() const { return style()->isVerticalBlockFlow() ? viewHeight() : viewWidth(); } + int viewLogicalWidth() const { return style()->isHorizontalWritingMode() ? viewWidth() : viewHeight(); } + int viewLogicalHeight() const { return style()->isHorizontalWritingMode() ? viewHeight() : viewWidth(); } float zoomFactor() const; @@ -138,7 +138,7 @@ public: { if (m_pageHeight != height) { m_pageHeight = height; - markDescendantBlocksAndLinesForLayout(); + m_pageHeightChanged = true; } } @@ -181,11 +181,11 @@ public: // used by layout function int docWidth() const; // These functions may only be accessed by LayoutStateMaintainer. - bool pushLayoutState(RenderBox* renderer, const IntSize& offset, int pageHeight = 0, ColumnInfo* colInfo = 0) + bool pushLayoutState(RenderBox* renderer, const IntSize& offset, int pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0) { // We push LayoutState even if layoutState is disabled because it stores layoutDelta too. if (!doingFullRepaint() || renderer->hasColumns() || m_layoutState->isPaginated()) { - m_layoutState = new (renderArena()) LayoutState(m_layoutState, renderer, offset, pageHeight, colInfo); + m_layoutState = new (renderArena()) LayoutState(m_layoutState, renderer, offset, pageHeight, pageHeightChanged, colInfo); return true; } return false; @@ -233,6 +233,7 @@ protected: private: unsigned m_pageHeight; + bool m_pageHeightChanged; LayoutState* m_layoutState; unsigned m_layoutStateDisableCount; #if USE(ACCELERATED_COMPOSITING) @@ -260,14 +261,14 @@ void toRenderView(const RenderView*); class LayoutStateMaintainer : public Noncopyable { public: // ctor to push now - LayoutStateMaintainer(RenderView* view, RenderBox* root, IntSize offset, bool disableState = false, int pageHeight = 0, ColumnInfo* colInfo = 0) + LayoutStateMaintainer(RenderView* view, RenderBox* root, IntSize offset, bool disableState = false, int pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0) : m_view(view) , m_disabled(disableState) , m_didStart(false) , m_didEnd(false) , m_didCreateLayoutState(false) { - push(root, offset, pageHeight, colInfo); + push(root, offset, pageHeight, pageHeightChanged, colInfo); } // ctor to maybe push later @@ -285,11 +286,11 @@ public: ASSERT(m_didStart == m_didEnd); // if this fires, it means that someone did a push(), but forgot to pop(). } - void push(RenderBox* root, IntSize offset, int pageHeight = 0, ColumnInfo* colInfo = 0) + void push(RenderBox* root, IntSize offset, int pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0) { ASSERT(!m_didStart); // We push state even if disabled, because we still need to store layoutDelta - m_didCreateLayoutState = m_view->pushLayoutState(root, offset, pageHeight, colInfo); + m_didCreateLayoutState = m_view->pushLayoutState(root, offset, pageHeight, pageHeightChanged, colInfo); if (m_disabled && m_didCreateLayoutState) m_view->disableLayoutState(); m_didStart = true; |