Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b2c6de36c534efae9787b1fa96c3c3595874b082
https://github.com/WebKit/WebKit/commit/b2c6de36c534efae9787b1fa96c3c3595874b082
Author: Richard Robinson <[email protected]>
Date: 2026-02-12 (Thu, 12 Feb 2026)
Changed paths:
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.swift
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
M Source/WebKit/UIProcess/mac/WKAppKitGestureController.mm
M Source/WebKit/UIProcess/mac/WKTextSelectionController.h
M Source/WebKit/UIProcess/mac/WKTextSelectionController.swift
M Source/WebKit/UIProcess/mac/WebViewImpl.mm
M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
Log Message:
-----------
[AppKit Gestures] Add support for moving the insertion cursor during text
selection
https://bugs.webkit.org/show_bug.cgi?id=307644
rdar://170205738
Reviewed by Tim Horton.
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::selectPositionAtPoint):
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::selectPositionAtPoint): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.swift:
(WebKit.selectPosition(at:isInteractingWithFocusedElement:)):
(WebKit.editorStateCopy):
(WebKit.editorState):
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::selectionDidChange):
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::selectPositionAtPoint):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectPositionAtPoint): Deleted.
- Expose `WebPageProxy::selectPositionAtPoint` on macOS.
- Add a few missing `unsafe`s.
* Source/WebKit/UIProcess/mac/WKAppKitGestureController.mm:
(-[WKAppKitGestureController initWithPage:viewImpl:]):
(-[WKAppKitGestureController setUpPanGestureRecognizer]):
(-[WKAppKitGestureController setUpSingleClickGestureRecognizer]):
(-[WKAppKitGestureController setUpDoubleClickGestureRecognizer]):
(-[WKAppKitGestureController setUpSecondaryClickGestureRecognizer]):
(-[WKAppKitGestureController addGesturesToWebView]):
(-[WKAppKitGestureController enableGesturesIfNeeded]):
(-[WKAppKitGestureController singleClickGestureRecognized:]):
(-[WKAppKitGestureController secondaryClickGestureRecognized:]):
(-[WKAppKitGestureController
gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKAppKitGestureController configureForScrolling:]): Deleted.
(-[WKAppKitGestureController configureForSingleClick:]): Deleted.
(-[WKAppKitGestureController configureForDoubleClick:]): Deleted.
- Create a custom gesture recognizer to handle secondary clicks, and set it up
such that
the one created by the system always takes precedence if needed.
* Source/WebKit/UIProcess/mac/WKTextSelectionController.h:
* Source/WebKit/UIProcess/mac/WKTextSelectionController.swift:
(WKTextSelectionController.selectionDidChange):
(WKTextSelectionController.moveInsertionCursor(to:)):
(WKTextSelectionController.handleClickInternal(at:)):
(WKTextSelectionController.dragSelection(withGesture:completionHandler:)):
(WKTextSelectionController.beginRangeSelection(at:with:)):
(WKTextSelectionController.continueRangeSelection(at:)):
(WKTextSelectionController.endRangeSelection(at:)):
(WKTextSelectionController.selectionManager(_:makeDraggingSessionWithGesture:)):
- Update the text selection manager with the text selection type whenever the
selection changes. This isn't completely accurate, but it's a good enough
approximation for now.
- Implement logic for moving the caret
- Minor changes to some logging
- Workaround a bug in the system due to a bad `respondsToSelector` check
Canonical link: https://commits.webkit.org/307382@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications