From 25516e351e46104ff445216e7835aaab9f9b9535 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Wed, 9 Oct 2024 18:53:50 +0200 Subject: [PATCH] LibWeb: Clear grapheme segmenter when invalidating TextNode text We only set the grapheme segmenter's text once after creating a new segmenter, so we also need to clear it whenever we invalidate the text. --- .../Ref/reference/textnode-segmenter-invalidation.html | 2 ++ Tests/LibWeb/Ref/textnode-segmenter-invalidation.html | 9 +++++++++ Userland/Libraries/LibWeb/Layout/TextNode.cpp | 1 + 3 files changed, 12 insertions(+) create mode 100644 Tests/LibWeb/Ref/reference/textnode-segmenter-invalidation.html create mode 100644 Tests/LibWeb/Ref/textnode-segmenter-invalidation.html diff --git a/Tests/LibWeb/Ref/reference/textnode-segmenter-invalidation.html b/Tests/LibWeb/Ref/reference/textnode-segmenter-invalidation.html new file mode 100644 index 00000000000..bccaed44b69 --- /dev/null +++ b/Tests/LibWeb/Ref/reference/textnode-segmenter-invalidation.html @@ -0,0 +1,2 @@ + diff --git a/Tests/LibWeb/Ref/textnode-segmenter-invalidation.html b/Tests/LibWeb/Ref/textnode-segmenter-invalidation.html new file mode 100644 index 00000000000..d1088abb205 --- /dev/null +++ b/Tests/LibWeb/Ref/textnode-segmenter-invalidation.html @@ -0,0 +1,9 @@ + + + + diff --git a/Userland/Libraries/LibWeb/Layout/TextNode.cpp b/Userland/Libraries/LibWeb/Layout/TextNode.cpp index e015b4aa34d..6030a81ce51 100644 --- a/Userland/Libraries/LibWeb/Layout/TextNode.cpp +++ b/Userland/Libraries/LibWeb/Layout/TextNode.cpp @@ -304,6 +304,7 @@ static ErrorOr apply_text_transform(String const& string, CSS::TextTrans void TextNode::invalidate_text_for_rendering() { m_text_for_rendering = {}; + m_grapheme_segmenter.clear(); } String const& TextNode::text_for_rendering() const