Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c35d1fad75d58b9de8042a06f0fc21a9d411544e
https://github.com/WebKit/WebKit/commit/c35d1fad75d58b9de8042a06f0fc21a9d411544e
Author: Richard Robinson <[email protected]>
Date: 2024-06-11 (Tue, 11 Jun 2024)
Changed paths:
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/editing/ReplaceSelectionCommand.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M
Source/WebCore/page/unified-text-replacement/UnifiedTextReplacementController.h
M
Source/WebCore/page/unified-text-replacement/UnifiedTextReplacementController.mm
M Source/WebKit/WebProcess/WebPage/Cocoa/TextIndicatorStyleController.mm
Log Message:
-----------
[Writing Tools] Reverting a list transformation leaves a single errant bullet
https://bugs.webkit.org/show_bug.cgi?id=275336
rdar://126139492
Reviewed by Wenson Hsieh and Tim Horton.
Previously, we were undoing and restoring the text by creating and storing
document fragments
and replacing the current selection. However, this approach is flawed for cases
where lists
or table elements are used, since selecting all contents will exclude the first
list bullet.
Fix by changing the implementation to instead just unapply and reapply the
editing command itself,
which does not rely on selection.
Also, slightly refactor all the stateful instance variables into a single state
struct.
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/editing/ReplaceSelectionCommand.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::willBeginTextReplacementSession):
(WebCore::Page::didBeginTextReplacementSession):
(WebCore::Page::textReplacementSessionDidReceiveReplacements):
(WebCore::Page::textReplacementSessionDidUpdateStateForReplacement):
(WebCore::Page::didEndTextReplacementSession):
(WebCore::Page::textReplacementSessionDidReceiveTextWithReplacementRange):
(WebCore::Page::contextRangeForSessionWithID const):
(WebCore::Page::textReplacementSessionDidReceiveEditAction):
* Source/WebCore/page/Page.h:
(WebCore::Page::unifiedTextReplacementController const): Deleted.
*
Source/WebCore/page/unified-text-replacement/UnifiedTextReplacementController.h:
*
Source/WebCore/page/unified-text-replacement/UnifiedTextReplacementController.mm:
(WebCore::UnifiedTextReplacementController::willBeginTextReplacementSession):
(WebCore::UnifiedTextReplacementController::textReplacementSessionDidReceiveReplacements):
(WebCore::UnifiedTextReplacementController::textReplacementSessionDidUpdateStateForReplacement):
(WebCore::UnifiedTextReplacementController::textReplacementSessionDidReceiveTextWithReplacementRange):
(WebCore::UnifiedTextReplacementController::textReplacementSessionDidReceiveEditAction<UnifiedTextReplacement::Session::ReplacementType::PlainText>):
(WebCore::UnifiedTextReplacementController::textReplacementSessionDidReceiveEditAction<UnifiedTextReplacement::Session::ReplacementType::RichText>):
(WebCore::UnifiedTextReplacementController::textReplacementSessionDidReceiveEditAction):
(WebCore::UnifiedTextReplacementController::didEndTextReplacementSession<UnifiedTextReplacement::Session::ReplacementType::PlainText>):
(WebCore::UnifiedTextReplacementController::didEndTextReplacementSession):
(WebCore::UnifiedTextReplacementController::updateStateForSelectedReplacementIfNeeded):
(WebCore::UnifiedTextReplacementController::contextRangeForSessionWithID const):
(WebCore::UnifiedTextReplacementController::stateForSession):
(WebCore::UnifiedTextReplacementController::replaceContentsOfRangeInSessionInternal):
(WebCore::UnifiedTextReplacementController::replaceContentsOfRangeInSession):
* Source/WebKit/WebProcess/WebPage/Cocoa/TextIndicatorStyleController.mm:
(WebKit::TextIndicatorStyleController::contextRangeForSessionWithID const):
Canonical link: https://commits.webkit.org/279937@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