[webkit-changes] [WebKit/WebKit] d65804: Emoji is cut off when typing on the same line as text
Alan Baradlay
noreply at github.com
Fri Jan 31 09:57:09 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d6580489bce9662c8406afe674f26932ca3a835a
https://github.com/WebKit/WebKit/commit/d6580489bce9662c8406afe674f26932ca3a835a
Author: Alan Baradlay <zalan at apple.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
A LayoutTests/fast/repaint/emoji-glyph-overflow-repaint-fail-expected.txt
A LayoutTests/fast/repaint/emoji-glyph-overflow-repaint-fail.html
M Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
M Source/WebCore/layout/integration/LayoutIntegrationBoxTreeUpdater.cpp
M Source/WebCore/layout/layouttree/LayoutInlineTextBox.h
M Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp
M Source/WebCore/platform/graphics/ComplexTextController.cpp
M Source/WebCore/platform/graphics/ComplexTextController.h
M Source/WebCore/platform/graphics/FontCascade.h
M Source/WebCore/rendering/RenderText.cpp
M Source/WebCore/rendering/RenderText.h
Log Message:
-----------
Emoji is cut off when typing on the same line as text
https://bugs.webkit.org/show_bug.cgi?id=286593
<rdar://142911299>
Reviewed by Antti Koivisto.
enclosingGlyphBoundsForRunWithIterator fails to provide correct glyph bounds for certain,
complex content where finding the correct font requires slightly involved logic (e.g. emoji with variant selector).
-essentially we pick the wrong font and find no glyph overflow.
Figuring out the correct font for complex content is part of ComplexTextController's collectComplexTextRunsForCharacters.
This patch adds 'static enclosingGlyphBoundsForTextRun' to ComplexTextController() which returns glyph bounds after consulting collectComplexTextRunsForCharacters
to make sure we use the correct font.
* LayoutTests/fast/repaint/emoji-glyph-overflow-repaint-fail-expected.txt: Added.
* LayoutTests/fast/repaint/emoji-glyph-overflow-repaint-fail.html: Added.
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::enclosingGlyphBoundsForRunWithIterator):
(WebCore::Layout::TextUtil::enclosingGlyphBoundsForText):
* Source/WebCore/platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::ComplexTextController):
(WebCore::ComplexTextController::enclosingGlyphBoundsForTextRun):
* Source/WebCore/platform/graphics/ComplexTextController.h:
Canonical link: https://commits.webkit.org/289610@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list