Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 347a3c86979f5d5873d85587fa1d7e78b75106ec
      
https://github.com/WebKit/WebKit/commit/347a3c86979f5d5873d85587fa1d7e78b75106ec
  Author: Richard Robinson <[email protected]>
  Date:   2023-04-29 (Sat, 29 Apr 2023)

  Changed paths:
    M Source/WebCore/editing/FrameSelection.h
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm

  Log Message:
  -----------
  [iOS] Text selection is lost if right clicking at end of selection
https://bugs.webkit.org/show_bug.cgi?id=256126
rdar://105737822

Reviewed by Wenson Hsieh.

In WebKit, a point is considered to be inside a selection if the boundary point 
created from the
point is within the boundary points of the selection range, inclusive. For 
example, with the text
"Hello" and a selection of "Hell", if the point is slightly to the left of the 
middle of the "o",
the boundary point of the point is considered to be the same as the boundary 
point of the end of
the selection.

On macOS, when right clicking at the end of a selection, if the clicked point 
is considered to be
"inside" the selection, a new selection is not created. However, for iOS, there 
is no such mechanism
to check this, so a new selection is always created, which is unexpected 
behavior if the click is
still "inside" the existing selection.

This PR fixes this by implementing this check on iOS.

* Source/WebCore/editing/FrameSelection.h:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::prepareSelectionForContextMenuWithLocationInView):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:
(simulateEditContextMenuAppearance):
(TEST):

Canonical link: https://commits.webkit.org/263536@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to