| Index: third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| index 80a7b90c9b77fd15493499141bc206560a440f0a..461d06ed4e99ad462d1c6f018b3ff58acf0ee1e7 100644
|
| --- a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
|
| @@ -81,7 +81,8 @@ static LineLayoutItem EnclosingUnderlineObject(
|
| return nullptr;
|
|
|
| const ComputedStyle& style_to_use = current.StyleRef(first_line);
|
| - if (style_to_use.GetTextDecoration() & kTextDecorationUnderline)
|
| + if (EnumHasFlags(style_to_use.GetTextDecoration(),
|
| + TextDecoration::kUnderline))
|
| return current;
|
|
|
| current = current.Parent();
|
| @@ -591,10 +592,10 @@ static void PaintDecorationsExceptLineThrough(
|
| for (const AppliedTextDecoration& decoration : decorations) {
|
| TextDecoration lines = decoration.Lines();
|
| if (flip_underline_and_overline) {
|
| - lines = static_cast<TextDecoration>(
|
| - lines ^ (kTextDecorationUnderline | kTextDecorationOverline));
|
| + lines ^= (TextDecoration::kUnderline | TextDecoration::kOverline);
|
| }
|
| - if ((lines & kTextDecorationUnderline) && decoration_info.font_data) {
|
| + if (EnumHasFlags(lines, TextDecoration::kUnderline) &&
|
| + decoration_info.font_data) {
|
| const int underline_offset =
|
| ComputeUnderlineOffset(underline_position, *decoration_info.style,
|
| decoration_info.font_data->GetFontMetrics(),
|
| @@ -612,7 +613,7 @@ static void PaintDecorationsExceptLineThrough(
|
| }
|
| decoration_painter.Paint();
|
| }
|
| - if (lines & kTextDecorationOverline) {
|
| + if (EnumHasFlags(lines, TextDecoration::kOverline)) {
|
| const int overline_offset =
|
| ComputeOverlineOffset(*decoration_info.style, &box);
|
| AppliedDecorationPainter decoration_painter(
|
| @@ -630,7 +631,8 @@ static void PaintDecorationsExceptLineThrough(
|
| }
|
| // We could instead build a vector of the TextDecoration instances needing
|
| // line-through but this is a rare case so better to avoid vector overhead.
|
| - has_line_through_decoration |= ((lines & kTextDecorationLineThrough) != 0);
|
| + has_line_through_decoration |=
|
| + EnumHasFlags(lines, TextDecoration::kLineThrough);
|
| }
|
| }
|
|
|
| @@ -644,7 +646,7 @@ static void PaintDecorationsOnlyLineThrough(
|
| context.SetStrokeThickness(decoration_info.thickness);
|
| for (const AppliedTextDecoration& decoration : decorations) {
|
| TextDecoration lines = decoration.Lines();
|
| - if (lines & kTextDecorationLineThrough) {
|
| + if (EnumHasFlags(lines, TextDecoration::kLineThrough)) {
|
| const float line_through_offset = 2 * decoration_info.baseline / 3;
|
| AppliedDecorationPainter decoration_painter(
|
| context, decoration_info, line_through_offset, decoration,
|
| @@ -860,7 +862,7 @@ void InlineTextBoxPainter::Paint(const PaintInfo& paint_info,
|
| // Paint text decorations except line-through.
|
| DecorationInfo decoration_info;
|
| bool has_line_through_decoration = false;
|
| - if (style_to_use.TextDecorationsInEffect() != kTextDecorationNone &&
|
| + if (style_to_use.TextDecorationsInEffect() != TextDecoration::kNone &&
|
| inline_text_box_.Truncation() != kCFullTruncation) {
|
| ComputeDecorationInfo(decoration_info, inline_text_box_, box_origin,
|
| style_to_use.AppliedTextDecorations());
|
|
|