diff options
author | Ben Murdoch <benm@google.com> | 2011-06-02 12:07:03 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-10 10:47:21 +0100 |
commit | 2daae5fd11344eaa88a0d92b0f6d65f8d2255c00 (patch) | |
tree | e4964fbd1cb70599f7718ff03e50ea1dab33890b /Source/WebCore/rendering/RenderInline.h | |
parent | 87bdf0060a247bfbe668342b87e0874182e0ffa9 (diff) | |
download | external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.zip external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.gz external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.bz2 |
Merge WebKit at r84325: Initial merge by git.
Change-Id: Ic1a909300ecc0a13ddc6b4e784371d2ac6e3d59b
Diffstat (limited to 'Source/WebCore/rendering/RenderInline.h')
-rw-r--r-- | Source/WebCore/rendering/RenderInline.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/WebCore/rendering/RenderInline.h b/Source/WebCore/rendering/RenderInline.h index 08ac002..dc3eaea 100644 --- a/Source/WebCore/rendering/RenderInline.h +++ b/Source/WebCore/rendering/RenderInline.h @@ -23,6 +23,7 @@ #ifndef RenderInline_h #define RenderInline_h +#include "InlineFlowBox.h" #include "RenderBoxModelObject.h" #include "RenderLineBoxList.h" @@ -64,6 +65,8 @@ public: InlineFlowBox* firstLineBox() const { return m_lineBoxes.firstLineBox(); } InlineFlowBox* lastLineBox() const { return m_lineBoxes.lastLineBox(); } + InlineBox* firstLineBoxIncludingCulling() const { return alwaysCreateLineBoxes() ? firstLineBox() : culledInlineFirstLineBox(); } + InlineBox* lastLineBoxIncludingCulling() const { return alwaysCreateLineBoxes() ? lastLineBox() : culledInlineLastLineBox(); } virtual RenderBoxModelObject* virtualContinuation() const { return continuation(); } RenderInline* inlineElementContinuation() const; @@ -78,6 +81,10 @@ public: using RenderBoxModelObject::continuation; using RenderBoxModelObject::setContinuation; + bool alwaysCreateLineBoxes() const { return m_alwaysCreateLineBoxes; } + void setAlwaysCreateLineBoxes() { m_alwaysCreateLineBoxes = true; } + void updateAlwaysCreateLineBoxes(); + protected: virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); @@ -91,6 +98,13 @@ private: virtual bool isRenderInline() const { return true; } + FloatRect culledInlineBoundingBox(const RenderInline* container) const; + IntRect culledInlineVisualOverflowBoundingBox() const; + InlineBox* culledInlineFirstLineBox() const; + InlineBox* culledInlineLastLineBox() const; + void culledInlineAbsoluteRects(const RenderInline* container, Vector<IntRect>&, const IntSize&); + void culledInlineAbsoluteQuads(const RenderInline* container, Vector<FloatQuad>&); + void addChildToContinuation(RenderObject* newChild, RenderObject* beforeChild); virtual void addChildIgnoringContinuation(RenderObject* newChild, RenderObject* beforeChild = 0); @@ -154,7 +168,8 @@ private: RenderObjectChildList m_children; RenderLineBoxList m_lineBoxes; // All of the line boxes created for this inline flow. For example, <i>Hello<br>world.</i> will have two <i> line boxes. - mutable int m_lineHeight; + mutable int m_lineHeight : 31; + bool m_alwaysCreateLineBoxes : 1; }; inline RenderInline* toRenderInline(RenderObject* object) |