Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fc167fd5d50cfa0a26daf54b11a68055355d85d5
https://github.com/WebKit/WebKit/commit/fc167fd5d50cfa0a26daf54b11a68055355d85d5
Author: Wenson Hsieh <[email protected]>
Date: 2024-12-12 (Thu, 12 Dec 2024)
Changed paths:
M Source/WebKit/Shared/ios/GestureTypes.h
M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
M Source/WebKit/WebProcess/Plugins/PluginView.cpp
M Source/WebKit/WebProcess/Plugins/PluginView.h
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
Log Message:
-----------
[UnifiedPDF] [iOS] Support text selection adjustment with selection handles
https://bugs.webkit.org/show_bug.cgi?id=284582
rdar://141324936
Reviewed by Abrar Rahman Protyasha.
Add support for range adjustment text interactions (i.e. dragging selection
handles to select text)
when using unified PDF on iOS. See below for more details.
* Source/WebKit/Shared/ios/GestureTypes.h:
Add a couple new selection-related enum types to help clarify the
parameter/return type in the new
`moveSelectionEndpoint` method (see below).
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::moveSelectionEndpoint):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::setSelectionRange):
Adopt the new `rootViewToPage` helper below.
(WebKit::UnifiedPDFPlugin::moveSelectionEndpoint):
Add a new helper method to handle selection changes triggered by the user
moving one of the
selection endpoints with a loupe gesture on iOS. This handles selection
flipping by detecting when
the location of the selection base (i.e. the stationary selection range
endpoint) has moved, and
surfaces `SelectionWasFlipped::Yes` back to UIKit in order to allow the system
text interaction UI
to swap the selection start and end handles on the fly.
(WebKit::UnifiedPDFPlugin::selectionCaretPointInPage):
(WebKit::UnifiedPDFPlugin::selectionCaretPointInPage const):
Add a couple of helper methods to compute the selection start/end points,
relative to page
coordinates. Returns both a point, and a `PDFPage` that is the the point's
coordinate space.
(WebKit::UnifiedPDFPlugin::rootViewToPage const):
Pull out some existing code to map a point from root view coordinates to a PDF
page out into a
separate helper. This returns both the new mapped point, as well as the
`PDFPage` that the point is
relative to.
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::moveSelectionEndpoint):
* Source/WebKit/WebProcess/Plugins/PluginView.h:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateSelectionWithTouches):
Add a hook to defer to the PDF plugin, if present.
Canonical link: https://commits.webkit.org/287780@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