Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4ec3e36fe71bc30a1794307ae3ca73f835a035bf
      
https://github.com/WebKit/WebKit/commit/4ec3e36fe71bc30a1794307ae3ca73f835a035bf
  Author: Aditya Keerthi <akeer...@apple.com>
  Date:   2025-07-29 (Tue, 29 Jul 2025)

  Changed paths:
    M Source/WTF/wtf/PlatformUse.h
    M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
    M Source/WebKit/UIProcess/ios/forms/WKDatePickerPopoverController.mm
    M Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm

  Log Message:
  -----------
  [tvOS] Date pickers should not be presented as popovers
https://bugs.webkit.org/show_bug.cgi?id=296593
rdar://147352087

Reviewed by Wenson Hsieh.

Use the default modal presentation style for date pickers on tvOS.

* Source/WTF/wtf/PlatformUse.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView 
_zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):

This logic is triggered downstream of `-[WKContentView inputViewForWebView]` as
the view controller is dismissed. When the view controller is presented modally,
the entire web view is obscured. The logic in this method is not designed to
handle that case, resulting in scrolling to a non-sensical position when the
date picker is dismissed.

Fix by detecting the case where the entire web view is obscured and there is
no form accessory, and eliding the logic.

* Source/WebKit/UIProcess/ios/forms/WKDatePickerPopoverController.mm:

`WKDatePickerPopoverController` is not renamed in this change itself as
`WKDatePickerViewController` already exists on watchOS. Further refactoring
is necessary to ensure this code is *not* compiled on watchOS.

(-[WKDatePickerContentView setupView:toolbarBottomMargin:]):

Display the toolbar at the top rather than the bottom.

(-[WKDatePickerPopoverController initWithDatePicker:delegate:]):
(-[WKDatePickerPopoverController 
initWithCalendarView:selectionWeekOfYear:delegate:]):
(-[WKDatePickerPopoverController viewDidLoad]):
(-[WKDatePickerPopoverController viewWillLayoutSubviews]):
* Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker controlBeginEditing]):

Ensure `startRelinquishingFirstResponderToFocusedElement` is called to avoid
immediately blurring the focused element as the presented view controller
attempts to become the first responder.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to