From 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 7 May 2012 11:21:11 +0200 Subject: Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286) --- Source/WebCore/rendering/RenderView.h | 70 +++++++++++++++++------------------ 1 file changed, 33 insertions(+), 37 deletions(-) (limited to 'Source/WebCore/rendering/RenderView.h') diff --git a/Source/WebCore/rendering/RenderView.h b/Source/WebCore/rendering/RenderView.h index 66000942e..1371e136e 100644 --- a/Source/WebCore/rendering/RenderView.h +++ b/Source/WebCore/rendering/RenderView.h @@ -26,37 +26,38 @@ #include "LayoutState.h" #include "PODFreeListArena.h" #include "RenderBlock.h" -#include #include namespace WebCore { -class RenderFlowThread; +class FlowThreadController; class RenderWidget; #if USE(ACCELERATED_COMPOSITING) class RenderLayerCompositor; #endif -typedef ListHashSet RenderFlowThreadList; - class RenderView : public RenderBlock { public: RenderView(Node*, FrameView*); virtual ~RenderView(); - virtual const char* renderName() const { return "RenderView"; } + bool hitTest(const HitTestRequest&, HitTestResult&); + + virtual const char* renderName() const OVERRIDE { return "RenderView"; } - virtual bool isRenderView() const { return true; } + virtual bool isRenderView() const OVERRIDE { return true; } - virtual bool requiresLayer() const { return true; } + virtual bool requiresLayer() const OVERRIDE { return true; } - virtual bool isChildAllowed(RenderObject*, RenderStyle*) const; + virtual bool isChildAllowed(RenderObject*, RenderStyle*) const OVERRIDE; - virtual void layout(); - virtual void computeLogicalWidth(); - virtual void computeLogicalHeight(); - virtual void computePreferredLogicalWidths(); + virtual void layout() OVERRIDE; + virtual void computeLogicalWidth() OVERRIDE; + virtual void computeLogicalHeight() OVERRIDE; + // FIXME: This override is not needed and should be removed + // it only exists to make computePreferredLogicalWidths public. + virtual void computePreferredLogicalWidths() OVERRIDE; // The same as the FrameView's layoutHeight/layoutWidth but with null check guards. int viewHeight() const; @@ -68,14 +69,14 @@ public: FrameView* frameView() const { return m_frameView; } - virtual void computeRectForRepaint(RenderBoxModelObject* repaintContainer, IntRect&, bool fixed = false) const; - virtual void repaintViewRectangle(const IntRect&, bool immediate = false); + virtual void computeRectForRepaint(RenderBoxModelObject* repaintContainer, LayoutRect&, bool fixed = false) const; + virtual void repaintViewRectangle(const LayoutRect&, bool immediate = false); // Repaint the view, and all composited layers that intersect the given absolute rectangle. // FIXME: ideally we'd never have to do this, if all repaints are container-relative. - virtual void repaintRectangleInViewAndCompositedLayers(const IntRect&, bool immediate = false); + virtual void repaintRectangleInViewAndCompositedLayers(const LayoutRect&, bool immediate = false); virtual void paint(PaintInfo&, const LayoutPoint&); - virtual void paintBoxDecorations(PaintInfo&, const IntPoint&); + virtual void paintBoxDecorations(PaintInfo&, const LayoutPoint&) OVERRIDE; enum SelectionRepaintMode { RepaintNewXOROld, RepaintNewMinusOld, RepaintNothing }; void setSelection(RenderObject* start, int startPos, RenderObject* end, int endPos, SelectionRepaintMode = RepaintNewXOROld); @@ -98,7 +99,7 @@ public: #endif int maximalOutlineSize() const { return m_maximalOutlineSize; } - virtual IntRect viewRect() const; + virtual LayoutRect viewRect() const OVERRIDE; void updateWidgetPositions(); void addWidget(RenderWidget*); @@ -172,27 +173,21 @@ public: IntRect documentRect() const; - RenderFlowThread* ensureRenderFlowThreadWithName(const AtomicString& flowThread); - bool hasRenderFlowThreads() const { return m_renderFlowThreadList && !m_renderFlowThreadList->isEmpty(); } - void layoutRenderFlowThreads(); - bool isRenderFlowThreadOrderDirty() const { return m_isRenderFlowThreadOrderDirty; } - void setIsRenderFlowThreadOrderDirty(bool dirty) - { - m_isRenderFlowThreadOrderDirty = dirty; - if (dirty) - setNeedsLayout(true); - } - const RenderFlowThreadList* renderFlowThreadList() const { return m_renderFlowThreadList.get(); } - - RenderFlowThread* currentRenderFlowThread() const { return m_currentRenderFlowThread; } - void setCurrentRenderFlowThread(RenderFlowThread* flowThread) { m_currentRenderFlowThread = flowThread; } + bool hasRenderNamedFlowThreads() const; + FlowThreadController* flowThreadController(); void styleDidChange(StyleDifference, const RenderStyle* oldStyle); IntervalArena* intervalArena(); + IntSize viewportSize() const { return document()->viewportSize(); } + + void setFixedPositionedObjectsNeedLayout(); + void insertFixedPositionedObject(RenderBox*); + void removeFixedPositionedObject(RenderBox*); + protected: - virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&, bool* wasFixed = 0) const; + virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&, ApplyContainerFlipOrNot = ApplyContainerFlip, bool* wasFixed = 0) const; virtual void mapAbsoluteToLocalPoint(bool fixed, bool useTransforms, TransformState&) const; virtual bool requiresColumns(int desiredColumnCount) const OVERRIDE; @@ -200,7 +195,7 @@ private: virtual void calcColumnWidth() OVERRIDE; virtual ColumnInfo::PaginationUnit paginationUnit() const OVERRIDE; - bool shouldRepaint(const IntRect& r) const; + bool shouldRepaint(const LayoutRect&) const; // These functions may only be accessed by LayoutStateMaintainer. void pushLayoutState(RenderFlowThread*, bool regionsChanged); @@ -266,18 +261,19 @@ protected: typedef HashSet RenderWidgetSet; RenderWidgetSet m_widgets; - + + typedef HashSet RenderBoxSet; + OwnPtr m_fixedPositionedElements; + private: unsigned m_pageLogicalHeight; bool m_pageLogicalHeightChanged; - bool m_isRenderFlowThreadOrderDirty; LayoutState* m_layoutState; unsigned m_layoutStateDisableCount; #if USE(ACCELERATED_COMPOSITING) OwnPtr m_compositor; #endif - OwnPtr m_renderFlowThreadList; - RenderFlowThread* m_currentRenderFlowThread; + OwnPtr m_flowThreadController; RefPtr m_intervalArena; }; -- cgit v1.2.1