[webkit-changes] [WebKit/WebKit] 92399f: [Async text interaction] Enable selection autoscro...
Wenson Hsieh
noreply at github.com
Tue Nov 7 11:52:56 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 92399f9f2ddd89a024d1d9549a5945cea4c1b605
https://github.com/WebKit/WebKit/commit/92399f9f2ddd89a024d1d9549a5945cea4c1b605
Author: Wenson Hsieh <wenson_hsieh at apple.com>
Date: 2023-11-07 (Tue, 07 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
M Source/WebKit/UIProcess/ios/WKTextInteractionWrapper.mm
Log Message:
-----------
[Async text interaction] Enable selection autoscrolling, and reveal the edit menu after scrolling
https://bugs.webkit.org/show_bug.cgi?id=264337
Reviewed by Megan Gardner.
This patch works towards additional support for async text interaction (and input client), by
adding plumbing for the following:
1. Plumbing to autoscroll to a given `point` in content view coordinates.
2. Logic to reveal the edit menu after scrolling or zooming, only if the edit menu was previously
presented. To know this, we add a new flag on the content view to keep track of whether the edit
menu has been fully presented.
* Source/WebKit/Platform/spi/ios/UIKitSPI.h:
Add an SPI method declaration here, only so that we can call super in our existing implementation of
`-interactionAssistant`.
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView interactionAssistant]):
(-[WKContentView willPresentEditMenuWithAnimator:]):
(-[WKContentView willDismissEditMenuWithAnimator:]):
Keep track of `_isPresentingEditMenu`, so that we can consult it in the `WKTextInteractionWrapper`
below to conditionally restore edit menu visibility.
(-[WKContentView isPresentingEditMenu]):
(-[WKContentView autoscrollToPoint:]):
(-[WKContentView cancelAutoscroll]):
Implement a new method to hook into platform selection autoscrolling support using
`UIAsyncTextInputClient`.
* Source/WebKit/UIProcess/ios/WKTextInteractionWrapper.mm:
(SOFT_LINK_CLASS_OPTIONAL):
(-[WKTextInteractionWrapper initWithView:]):
(-[WKTextInteractionWrapper willStartScrollingOverflow]):
(-[WKTextInteractionWrapper didEndScrollingOverflow]):
(-[WKTextInteractionWrapper willStartScrollingOrZooming]):
(-[WKTextInteractionWrapper didEndScrollingOrZooming]):
Canonical link: https://commits.webkit.org/270343@main
More information about the webkit-changes
mailing list