Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2cf765d13bb88672dd9f14d8077a656a33f19a99 https://github.com/WebKit/WebKit/commit/2cf765d13bb88672dd9f14d8077a656a33f19a99 Author: Simon Fraser <simon.fra...@apple.com> Date: 2024-03-15 (Fri, 15 Mar 2024)
Changed paths: M Source/WebKit/UIProcess/mac/ViewGestureControllerMac.mm M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm Log Message: ----------- [UnifiedPDF] Zoom origin is unstable when zooming https://bugs.webkit.org/show_bug.cgi?id=271077 rdar://124709631 Reviewed by Tim Horton. There were two issues that caused zooming to feel wonky, especially when zooming fast. First, the origin was off by top content inset, because the origin passed in to `UnifiedPDFPlugin::setScaleFactor()` is not in root view coordinates; `ViewGestureController::handleMagnificationGestureEvent()` subtracts out top content inset, so put it back. Second, because scrolling is asynchronous, computing scroll deltas for each zoom increment doesn't work because the old scroll offset can reflect state from further in the past. Fix this by computing each new scroll position directly from the zoom origin in content coordinates, and in plugin coordinates. Cache these origins for the duration of a gesture. * Source/WebKit/UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::handleMagnificationGestureEvent): * Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h: * Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm: (WebKit::UnifiedPDFPlugin::didEndMagnificationGesture): (WebKit::UnifiedPDFPlugin::setScaleFactor): (WebKit::UnifiedPDFPlugin::setPageScaleFactor): Canonical link: https://commits.webkit.org/276209@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