Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f1278a15b8232ad9b2d90746f59f373a6ccbe576
      
https://github.com/WebKit/WebKit/commit/f1278a15b8232ad9b2d90746f59f373a6ccbe576
  Author: Wenson Hsieh <[email protected]>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
    M Source/WebKit/Platform/spi/ios/UIKitSPI.h
    M Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.h
    M Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm
    M Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm

  Log Message:
  -----------
  Use CompactContextMenuPresenter to show context menus for focused elements 
with datalist
https://bugs.webkit.org/show_bug.cgi?id=264038
rdar://117809656

Reviewed by Richard Robinson and Megan Gardner.

Deploy `CompactContextMenuPresenter` in `WKDataListSuggestionsDropdown`, to 
support compact context
menu presentation without relying on UIKit SPI. Note that this (in theory) 
means we no longer need
logic to manually specify preferred edge insets for the suggestions menu, since 
we now lay out the
hidden native `UIButton` over the bounds of the focused datalist element, which 
UIKit will
automatically avoid obscuring when presenting or updating the menu.

* Source/WebKit/Platform/spi/ios/UIKitSPI.h:

Remove SPI declarations that are no longer necessary.

* Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.h:
* Source/WebKit/UIProcess/ios/CompactContextMenuPresenter.mm:
(WebKit::CompactContextMenuPresenter::updateVisibleMenu):
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement:]):
(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement]): 
Deleted.

Add support for an option to create a targeted context menu hint that's 
positioned against the left
or right edge of the input, provided there's sufficient space to fit the 250pt 
(by default) menu.
When the view is RTL, note that we'll prefer to position the menu at the the 
right edge of the
element, fall back to the left edge if there's not enough horizonal space, and 
finally fall back to
the element rect itself if there's no space on either side.

* Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(-[WKDataListSuggestionsDropdown _showSuggestions]):
(-[WKDataListSuggestionsDropdown _removeContextMenuInteraction]):
(-[WKDataListSuggestionsDropdown 
contextMenuInteraction:configuration:highlightPreviewForItemWithIdentifier:]):
(-[WKDataListSuggestionsDropdown _preferredEdgeInsetsForSuggestionsMenu]): 
Deleted.
(-[WKDataListSuggestionsDropdown 
_contextMenuInteraction:styleForMenuWithConfiguration:]): Deleted.
* Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPicker 
contextMenuInteraction:configuration:highlightPreviewForItemWithIdentifier:]):

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


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

Reply via email to