Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 292bb3d0d677c5d7d39dde27b8b141d54f779b35
      
https://github.com/WebKit/WebKit/commit/292bb3d0d677c5d7d39dde27b8b141d54f779b35
  Author: Richard Robinson <[email protected]>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M Source/WebCore/editing/CompositeEditCommand.cpp
    M Source/WebCore/editing/CompositeEditCommand.h
    M Source/WebCore/editing/WritingToolsCompositionCommand.cpp
    M Source/WebCore/editing/WritingToolsCompositionCommand.h
    M Source/WebCore/page/writing-tools/WritingToolsController.h
    M Source/WebCore/page/writing-tools/WritingToolsController.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WritingTools.mm

  Log Message:
  -----------
  [Writing Tools] Make Table: Mail: Generated table has extra borderlines
https://bugs.webkit.org/show_bug.cgi?id=276315
rdar://129926389

Reviewed by Aditya Keerthi.

When `didReceiveText` is invoked multiple times when replacing text with a 
table, multiple table
elements were being created. This is because when the controller tries to 
re-create the context range
after the first table, it is unable to do so since selections cannot encompass 
a table or list element.

Fix by not trying to re-create the context range at all; instead, just undo the 
previous replacements,
and then the context range will always just be the original range for the 
current composition.

To facilitate this, add a 'silent' option when undo-ing a composition edit 
command so that a command can
be undone without adding it to the undo stack or emitting any type of event.

Additionally, since the TextAnimationController currently relies on being able 
to get the current range using
the session identifier, add a new property to the Writing Tools command to give 
this information.

* Source/WebCore/editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
* Source/WebCore/editing/CompositeEditCommand.h:
* Source/WebCore/editing/WritingToolsCompositionCommand.cpp:
(WebCore::WritingToolsCompositionCommand::WritingToolsCompositionCommand):
(WebCore::WritingToolsCompositionCommand::replaceContentsOfRangeWithFragment):
* Source/WebCore/editing/WritingToolsCompositionCommand.h:
(WebCore::WritingToolsCompositionCommand::currentContextRange const):
* Source/WebCore/page/writing-tools/WritingToolsController.mm:
(WebCore::WritingToolsController::compositionSessionDidReceiveTextWithReplacementRange):
(WebCore::WritingToolsController::contextRangeForSessionWithID const):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WritingTools.mm:
(makeTableAttributedString):
(TEST(WritingTools, CompositionWithTable)):
(TEST(WritingTools, SmartReplyWithInsertedSpace)):

Canonical link: https://commits.webkit.org/281780@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