diff --git a/third_party/txt/src/txt/paragraph_txt.cc b/third_party/txt/src/txt/paragraph_txt.cc index 3c8a9e2624314..f479d16412c7e 100644 --- a/third_party/txt/src/txt/paragraph_txt.cc +++ b/third_party/txt/src/txt/paragraph_txt.cc @@ -1753,8 +1753,7 @@ std::vector ParagraphTxt::GetRectsForRange( } else if (rect_height_style == RectHeightStyle::kMax) { for (const Paragraph::TextBox& box : kv.second.boxes) { boxes.emplace_back( - SkRect::MakeLTRB(box.rect.fLeft, - line.baseline - line.unscaled_ascent, + SkRect::MakeLTRB(box.rect.fLeft, line.baseline - line.ascent, box.rect.fRight, line.baseline + line.descent), box.direction); } diff --git a/third_party/txt/src/txt/paragraph_txt.h b/third_party/txt/src/txt/paragraph_txt.h index 9a0e2681f2039..7cb1cce73f8e2 100644 --- a/third_party/txt/src/txt/paragraph_txt.h +++ b/third_party/txt/src/txt/paragraph_txt.h @@ -146,7 +146,7 @@ class ParagraphTxt : public Paragraph { FRIEND_TEST(ParagraphTest, DISABLED_ArabicParagraph); FRIEND_TEST(ParagraphTest, SpacingParagraph); FRIEND_TEST(ParagraphTest, LongWordParagraph); - FRIEND_TEST(ParagraphTest, KernScaleParagraph); + FRIEND_TEST_LINUX_ONLY(ParagraphTest, KernScaleParagraph); FRIEND_TEST_WINDOWS_DISABLED(ParagraphTest, NewlineParagraph); FRIEND_TEST_LINUX_ONLY(ParagraphTest, EmojiParagraph); FRIEND_TEST_LINUX_ONLY(ParagraphTest, EmojiMultiLineRectsParagraph); diff --git a/third_party/txt/tests/paragraph_unittests.cc b/third_party/txt/tests/paragraph_unittests.cc index c6ffe5a20f03c..31375f50cd332 100644 --- a/third_party/txt/tests/paragraph_unittests.cc +++ b/third_party/txt/tests/paragraph_unittests.cc @@ -4461,7 +4461,7 @@ TEST_F(ParagraphTest, LongWordParagraph) { ASSERT_TRUE(Snapshot()); } -TEST_F(ParagraphTest, KernScaleParagraph) { +TEST_F(ParagraphTest, LINUX_ONLY(KernScaleParagraph)) { float scale = 3.0f; txt::ParagraphStyle paragraph_style; @@ -5253,7 +5253,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(StrutParagraph1)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_NEAR(boxes[0].rect.top(), 34.5, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 95); @@ -5276,7 +5276,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(StrutParagraph1)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300); - EXPECT_NEAR(boxes[0].rect.top(), 34.5, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 95); @@ -5287,7 +5287,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(StrutParagraph1)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_NEAR(boxes[0].rect.top(), 224.5, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 190, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 285); @@ -5298,7 +5298,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(StrutParagraph1)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50); - EXPECT_FLOAT_EQ(boxes[0].rect.top(), 319.5); + EXPECT_FLOAT_EQ(boxes[0].rect.top(), 285); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 380); @@ -5379,7 +5379,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph2)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_NEAR(boxes[0].rect.top(), 24, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80); @@ -5401,7 +5401,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph2)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300); - EXPECT_NEAR(boxes[0].rect.top(), 24, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80); @@ -5412,7 +5412,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph2)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_NEAR(boxes[0].rect.top(), 184, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 160, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 240); @@ -5423,7 +5423,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph2)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50); - EXPECT_FLOAT_EQ(boxes[0].rect.top(), 264); + EXPECT_FLOAT_EQ(boxes[0].rect.top(), 240); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 320); @@ -5505,7 +5505,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph3)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_NEAR(boxes[0].rect.top(), 8, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 60); @@ -5527,7 +5527,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph3)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300); - EXPECT_NEAR(boxes[0].rect.top(), 8, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 60); @@ -5538,7 +5538,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph3)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_FLOAT_EQ(boxes[0].rect.top(), 128); + EXPECT_FLOAT_EQ(boxes[0].rect.top(), 120); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 180); @@ -5549,7 +5549,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph3)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50); - EXPECT_FLOAT_EQ(boxes[0].rect.top(), 188); + EXPECT_FLOAT_EQ(boxes[0].rect.top(), 180); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 240); @@ -5632,7 +5632,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutForceParagraph)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_NEAR(boxes[0].rect.top(), 22.5, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); ; EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80); @@ -5655,7 +5655,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutForceParagraph)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300); - EXPECT_NEAR(boxes[0].rect.top(), 22.5, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 0, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80); @@ -5666,7 +5666,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutForceParagraph)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0); - EXPECT_NEAR(boxes[0].rect.top(), 182.5, 0.0001); + EXPECT_NEAR(boxes[0].rect.top(), 160, 0.0001); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 240); @@ -5677,7 +5677,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutForceParagraph)) { } EXPECT_EQ(boxes.size(), 1ull); EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50); - EXPECT_FLOAT_EQ(boxes[0].rect.top(), 262.5); + EXPECT_FLOAT_EQ(boxes[0].rect.top(), 240); EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300); EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 320);