Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(816)

Unified Diff: third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp

Issue 2970803002: Fix underline/overline flipping (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/css3-text/css3-text-decoration/line-through-vertical-expected.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 91c57c6d336e4a3235838c0411ae294501bb87d2..ab550bd85ac76e47b60c608cf60b17a3b17ffbf4 100644
--- a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
@@ -219,11 +219,12 @@ static void PaintDecorationsExceptLineThrough(
for (const AppliedTextDecoration& decoration : decorations) {
TextDecoration lines = decoration.Lines();
+ bool has_underline = EnumHasFlags(lines, TextDecoration::kUnderline);
+ bool has_overline = EnumHasFlags(lines, TextDecoration::kOverline);
if (flip_underline_and_overline) {
- lines ^= (TextDecoration::kUnderline | TextDecoration::kOverline);
+ std::swap(has_underline, has_overline);
}
- if (EnumHasFlags(lines, TextDecoration::kUnderline) &&
- decoration_info.font_data) {
+ if (has_underline && decoration_info.font_data) {
const int underline_offset = ComputeUnderlineOffset(
underline_position, *decoration_info.style,
decoration_info.font_data->GetFontMetrics(), &box, decorating_box,
@@ -232,7 +233,7 @@ static void PaintDecorationsExceptLineThrough(
context, decoration_info, decoration, underline_offset,
decoration_info.double_offset);
}
- if (EnumHasFlags(lines, TextDecoration::kOverline)) {
+ if (has_overline) {
const int overline_offset = ComputeUnderlineOffsetForUnder(
*decoration_info.style, &box, decorating_box,
decoration_info.thickness,
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/css3-text/css3-text-decoration/line-through-vertical-expected.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698