Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2e3db948f82fab5aa0533be7f38aff5d263334b2
      
https://github.com/WebKit/WebKit/commit/2e3db948f82fab5aa0533be7f38aff5d263334b2
  Author: Aditya Keerthi <akeer...@apple.com>
  Date:   2023-08-16 (Wed, 16 Aug 2023)

  Changed paths:
    M Source/WebKit/Platform/spi/visionos/MRUIKitSPI.h
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm

  Log Message:
  -----------
  [visionOS] Safari URL bar goes up a bit when entering fullscreen, and back 
down when exiting
https://bugs.webkit.org/show_bug.cgi?id=260315
rdar://113512242

Reviewed by Tim Horton and Richard Robinson.

Safari's URL bar is implemented as an ornament. An ornament's position is
determined relative to its scene, using its `sceneAnchorPoint`. When performing
the fullscreen transition, the scene is temporarily resized to fit the original
window, as well as the fullscreen window. Since ornaments are anchored to 
scenes,
they move along with the resize.

Fix by temporarily updating ornament offsets to account for the temporary scene
size.

* Source/WebKit/Platform/spi/visionos/MRUIKitSPI.h:

`offset2D` is relative to the `sceneAnchorPoint`.

* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKMRUIPlatterOrnamentProperties initWithOrnament:]):

Store the original `offset2D`, so that it can be restored when exiting 
fullscreen.

(-[WKFullScreenParentWindowState initWithWindow:]):

Store the original scene size, in order to determine the relative change in an
ornament's position.

(-[WKFullScreenWindowController _configureSpatialFullScreenTransition]):
(-[WKFullScreenWindowController _updateOrnamentOffsetsForTemporarySceneSize:]):

Update ornaments offsets to account for the temporary scene size.

(-[WKFullScreenWindowController 
_performSpatialFullScreenTransition:completionHandler:]):

Restore the original ornament offsets when exiting fullscreen.

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to