summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering/RenderInline.h
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-06-02 12:07:03 +0100
committerBen Murdoch <benm@google.com>2011-06-10 10:47:21 +0100
commit2daae5fd11344eaa88a0d92b0f6d65f8d2255c00 (patch)
treee4964fbd1cb70599f7718ff03e50ea1dab33890b /Source/WebCore/rendering/RenderInline.h
parent87bdf0060a247bfbe668342b87e0874182e0ffa9 (diff)
downloadexternal_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.h17
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)