Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a52cdae2e3d927019a145947d31e1cc7433a9771
      
https://github.com/WebKit/WebKit/commit/a52cdae2e3d927019a145947d31e1cc7433a9771
  Author: Alan Baradlay <[email protected]>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    A 
LayoutTests/fast/text/capitalize-content-with-outside-bmp-previous-characters-expected.html
    A 
LayoutTests/fast/text/capitalize-content-with-outside-bmp-previous-characters.html
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/editing/cocoa/HTMLConverter.mm
    M Source/WebCore/rendering/RenderListBox.cpp
    M Source/WebCore/rendering/RenderMenuList.cpp
    M Source/WebCore/rendering/RenderText.cpp
    M Source/WebCore/rendering/RenderText.h
    M Source/WebCore/rendering/RenderTextFragment.cpp
    M Source/WebCore/rendering/RenderTextFragment.h

  Log Message:
  -----------
  [Text] Add support for skipping previous non-bmp content when capitalizing
https://bugs.webkit.org/show_bug.cgi?id=283814
<rdar://problem/140681383>

Reviewed by Antti Koivisto.

Previous content may be a grapheme cluster with series of code points.
e.g. 𐐸<span style="text-transform: capitalize">𐐮𐐭𐑋𐐰𐑌</span>
where the previous content is '𐐸'.

In such cases it's not sufficient to return a single code point (UChar) as 
previous content.
It confuses the word boundary iterator and we end up titlecasing '𐐮'(we see it 
as the first character)

(No need to rename RenderText::previousCharacter as character ofter refers to 
user perceived character which may very well be a collection of multiple code 
points)

* 
LayoutTests/fast/text/capitalize-content-with-outside-bmp-previous-characters-expected.html:
 Added.
* 
LayoutTests/fast/text/capitalize-content-with-outside-bmp-previous-characters.html:
 Added.
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::performTextOperation):
* Source/WebCore/editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_processText):
* Source/WebCore/rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::paintItemForeground):
* Source/WebCore/rendering/RenderMenuList.cpp:
(RenderMenuList::updateOptionsWidth):
(RenderMenuList::itemText const):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::capitalize):
(WebCore::RenderText::previousCharacter const):
(WebCore::applyTextTransform):
* Source/WebCore/rendering/RenderText.h:
* Source/WebCore/rendering/RenderTextFragment.cpp: This needs some work. I am 
not even sure this is what we are supposed to do for previousCharacter().
(WebCore::RenderTextFragment::previousCharacter const):
* Source/WebCore/rendering/RenderTextFragment.h:

Canonical link: https://commits.webkit.org/287173@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to