Chromium Code Reviews| Index: Source/core/layout/style/LayoutStyle.cpp |
| diff --git a/Source/core/layout/style/LayoutStyle.cpp b/Source/core/layout/style/LayoutStyle.cpp |
| index 238f0ee44cbabd0726dd4a26f7933e36a6fd9ace..90acbe68430d8928de6f409828fecb13cd5e5fb2 100644 |
| --- a/Source/core/layout/style/LayoutStyle.cpp |
| +++ b/Source/core/layout/style/LayoutStyle.cpp |
| @@ -1320,6 +1320,21 @@ void LayoutStyle::addAppliedTextDecoration(const AppliedTextDecoration& decorati |
| list->append(decoration); |
| } |
| +bool LayoutStyle::hasSimpleUnderlineTextDecoration() |
| +{ |
| + int decorations = textDecoration(); |
|
Timothy Loh
2015/03/25 00:26:23
Don't think we should have to check this. If you l
|
| + return inherited_flags.m_textUnderline && (decorations & TextDecorationUnderline); |
| +} |
| + |
| +void LayoutStyle::adjustTextDecorationDifference() |
| +{ |
| + Color color = visitedDependentColor(CSSPropertyTextDecorationColor); |
| + TextDecorationStyle style = textDecorationStyle(); |
|
Timothy Loh
2015/03/25 00:26:23
Is this always TextDecorationUnderline when we get
|
| + |
| + AppliedTextDecoration underline(TextDecorationUnderline, style, color); |
| + addAppliedTextDecoration(underline); |
| +} |
| + |
| void LayoutStyle::applyTextDecorations() |
| { |
| if (textDecoration() == TextDecorationNone) |
| @@ -1327,23 +1342,24 @@ void LayoutStyle::applyTextDecorations() |
| TextDecorationStyle style = textDecorationStyle(); |
| StyleColor styleColor = decorationColorIncludingFallback(insideLink() == InsideVisitedLink); |
| + Color resolvedColor = styleColor.resolve(color()); |
| int decorations = textDecoration(); |
| if (decorations & TextDecorationUnderline) { |
| // To save memory, we don't use AppliedTextDecoration objects in the |
| // common case of a single simple underline. |
| - AppliedTextDecoration underline(TextDecorationUnderline, style, styleColor); |
| + AppliedTextDecoration underline(TextDecorationUnderline, style, resolvedColor); |
| - if (!rareInheritedData->appliedTextDecorations && underline.isSimpleUnderline()) |
| + if (!rareInheritedData->appliedTextDecorations && underline.isSimpleUnderline(styleColor.isCurrentColor())) |
|
Timothy Loh
2015/03/25 00:26:23
I think this is just
if (!rareInheritedData->appli
|
| inherited_flags.m_textUnderline = true; |
| else |
| addAppliedTextDecoration(underline); |
| } |
| if (decorations & TextDecorationOverline) |
| - addAppliedTextDecoration(AppliedTextDecoration(TextDecorationOverline, style, styleColor)); |
| + addAppliedTextDecoration(AppliedTextDecoration(TextDecorationOverline, style, resolvedColor)); |
| if (decorations & TextDecorationLineThrough) |
| - addAppliedTextDecoration(AppliedTextDecoration(TextDecorationLineThrough, style, styleColor)); |
| + addAppliedTextDecoration(AppliedTextDecoration(TextDecorationLineThrough, style, resolvedColor)); |
| } |
| void LayoutStyle::clearAppliedTextDecorations() |