| Index: Source/core/rendering/style/RenderStyle.h
|
| diff --git a/Source/core/rendering/style/RenderStyle.h b/Source/core/rendering/style/RenderStyle.h
|
| index 5e432d81ff77c6289874a23d499c49a34c32b581..76bcc614e329a0ba90ec40aa44637f0f802fcd73 100644
|
| --- a/Source/core/rendering/style/RenderStyle.h
|
| +++ b/Source/core/rendering/style/RenderStyle.h
|
| @@ -97,6 +97,7 @@ using std::max;
|
|
|
| class FilterOperations;
|
|
|
| +class AppliedTextDecoration;
|
| class BorderData;
|
| class CounterContent;
|
| class CursorList;
|
| @@ -163,7 +164,7 @@ protected:
|
| && (_visibility == other._visibility)
|
| && (_text_align == other._text_align)
|
| && (_text_transform == other._text_transform)
|
| - && (_text_decorations == other._text_decorations)
|
| + && (m_textUnderline == other.m_textUnderline)
|
| && (_cursor_style == other._cursor_style)
|
| && (_direction == other._direction)
|
| && (_white_space == other._white_space)
|
| @@ -185,24 +186,23 @@ protected:
|
| unsigned _visibility : 2; // EVisibility
|
| unsigned _text_align : 4; // ETextAlign
|
| unsigned _text_transform : 2; // ETextTransform
|
| - unsigned _text_decorations : TextDecorationBits;
|
| + unsigned m_textUnderline : 1;
|
| unsigned _cursor_style : 6; // ECursor
|
| unsigned _direction : 1; // TextDirection
|
| unsigned _white_space : 3; // EWhiteSpace
|
| - // 32 bits
|
| unsigned _border_collapse : 1; // EBorderCollapse
|
| unsigned _box_direction : 1; // EBoxDirection (CSS3 box_direction property, flexible box layout module)
|
| + // 32 bits
|
|
|
| // non CSS2 inherited
|
| unsigned m_rtlOrdering : 1; // Order
|
| unsigned m_printColorAdjust : PrintColorAdjustBits;
|
| unsigned _pointerEvents : 4; // EPointerEvents
|
| unsigned _insideLink : 2; // EInsideLink
|
| - // 43 bits
|
|
|
| // CSS Text Layout Module Level 3: Vertical writing support
|
| unsigned m_writingMode : 2; // WritingMode
|
| - // 45 bits
|
| + // 42 bits
|
| } inherited_flags;
|
|
|
| // don't inherit
|
| @@ -302,7 +302,7 @@ protected:
|
| inherited_flags._visibility = initialVisibility();
|
| inherited_flags._text_align = initialTextAlign();
|
| inherited_flags._text_transform = initialTextTransform();
|
| - inherited_flags._text_decorations = initialTextDecoration();
|
| + inherited_flags.m_textUnderline = false;
|
| inherited_flags._cursor_style = initialCursor();
|
| inherited_flags._direction = initialDirection();
|
| inherited_flags._white_space = initialWhiteSpace();
|
| @@ -581,7 +581,8 @@ public:
|
| TextAlignLast textAlignLast() const { return static_cast<TextAlignLast>(rareInheritedData->m_textAlignLast); }
|
| TextJustify textJustify() const { return static_cast<TextJustify>(rareInheritedData->m_textJustify); }
|
| ETextTransform textTransform() const { return static_cast<ETextTransform>(inherited_flags._text_transform); }
|
| - TextDecoration textDecorationsInEffect() const { return static_cast<TextDecoration>(inherited_flags._text_decorations); }
|
| + TextDecoration textDecorationsInEffect() const;
|
| + const Vector<AppliedTextDecoration>& appliedTextDecorations() const;
|
| TextDecoration textDecoration() const { return static_cast<TextDecoration>(visual->textDecoration); }
|
| TextUnderlinePosition textUnderlinePosition() const { return static_cast<TextUnderlinePosition>(rareInheritedData->m_textUnderlinePosition); }
|
| TextDecorationStyle textDecorationStyle() const { return static_cast<TextDecorationStyle>(rareNonInheritedData->m_textDecorationStyle); }
|
| @@ -1114,8 +1115,8 @@ public:
|
| void setTextAlignLast(TextAlignLast v) { SET_VAR(rareInheritedData, m_textAlignLast, v); }
|
| void setTextJustify(TextJustify v) { SET_VAR(rareInheritedData, m_textJustify, v); }
|
| void setTextTransform(ETextTransform v) { inherited_flags._text_transform = v; }
|
| - void addToTextDecorationsInEffect(TextDecoration v) { inherited_flags._text_decorations |= v; }
|
| - void setTextDecorationsInEffect(TextDecoration v) { inherited_flags._text_decorations = v; }
|
| + void applyTextDecorations();
|
| + void clearAppliedTextDecorations();
|
| void setTextDecoration(TextDecoration v) { SET_VAR(visual, textDecoration, v); }
|
| void setTextUnderlinePosition(TextUnderlinePosition v) { SET_VAR(rareInheritedData, m_textUnderlinePosition, v); }
|
| void setTextDecorationStyle(TextDecorationStyle v) { SET_VAR(rareNonInheritedData, m_textDecorationStyle, v); }
|
| @@ -1780,6 +1781,7 @@ private:
|
| Color lightingColor() const { return svgStyle()->lightingColor(); }
|
|
|
| void appendContent(PassOwnPtr<ContentData>);
|
| + void addAppliedTextDecoration(const AppliedTextDecoration&);
|
|
|
| bool diffNeedsFullLayout(const RenderStyle& other) const;
|
| bool diffNeedsRepaintLayer(const RenderStyle& other) const;
|
|
|