Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0b4f1f99201e4820a2b8727d68a6ba57b3785457 https://github.com/WebKit/WebKit/commit/0b4f1f99201e4820a2b8727d68a6ba57b3785457 Author: Wenson Hsieh <wenson_hs...@apple.com> Date: 2023-11-17 (Fri, 17 Nov 2023)
Changed paths: M Source/WebKit/Platform/spi/ios/UIKitSPI.h M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm Log Message: ----------- Replace `-layoutHasChanged` and `-updateForChangedSelection` with `-[UIAsyncTextInputDelegate invalidateTextEntryContext]` https://bugs.webkit.org/show_bug.cgi?id=265054 rdar://118467892 Reviewed by Megan Gardner. Adopt `-[UIAsyncTextInputDelegate invalidateTextEntryContext]`, which is a direct replacement for `-[UIKeyboardImpl updateForChangedSelection]`. Since the latter also updates marked text UI if needed, we can also replace the `-layoutHasChanged` call with this new method as well. * Source/WebKit/Platform/spi/ios/UIKitSPI.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKRelativeTextRange isEmpty]): Some drive-by fixes after the introduction of `WKRelativeTextRange` in 270847@main: 1. Enforce type safety in `-selectionRectsForRange:` and `-caretRectForPosition:`, in case any system client calls these methods using a relative range. 2. Fix `-[WKRelativeTextRange isEmpty]` so that it returns `YES` only in the case where the offsets are equal, *and* the anchors are the same. 3. Return `nil` in `-positionFromPosition:offset:` and `-textRangeFromPosition:toPosition:` instead of `WKRelativeText{Range|Position}`, if the given positions are either not already relative to the selection, or the given positions are not identical to the selection start/end. This is possible if UIKit asks for `-markedTextRange`, and then asks for positions offset from the start or end of the marked text. (-[WKContentView replaceForWebView:]): Another drive-by fix: the plan for handling `-replace:` has pivoted slightly, such that we're going to instead call a new protocol method on the sytem input delegate, instead of calling into the superclass. Adjust for that here. (-[WKContentView caretRectForPosition:]): (-[WKContentView selectionRectsForRange:]): (-[WKContentView _isAnchoredToCurrentSelection:]): (-[WKContentView textRangeFromPosition:toPosition:]): (-[WKContentView positionFromPosition:offset:]): (-[WKContentView _updateInputContextAfterBlurringAndRefocusingElement]): (-[WKContentView _selectionChanged]): (-[WKContentView setAsyncSystemInputDelegate:]): Canonical link: https://commits.webkit.org/270918@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes