[webkit-changes] [WebKit/WebKit] 7b321c: [UI-side compositing] Hook up the MomentumEventGen...
Simon Fraser
noreply at github.com
Tue Feb 28 16:24:51 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7b321c9bc2f7d450a7ce5e98383739d4c4698e8e
https://github.com/WebKit/WebKit/commit/7b321c9bc2f7d450a7ce5e98383739d4c4698e8e
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2023-02-28 (Tue, 28 Feb 2023)
Changed paths:
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h
M Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.cpp
Log Message:
-----------
[UI-side compositing] Hook up the MomentumEventGenerator for UI-side scrolling
https://bugs.webkit.org/show_bug.cgi?id=253049
rdar://106012308
Reviewed by Tim Horton.
Give RemoteLayerTreeEventDispatcher a MomentumEventDispatcher, which synthesizes momentum events
on the UI-sides scrolling thread.
RemoteLayerTreeEventDispatcher becomes a MomentumEventDispatcher::Client so that MomentumEventDispatcher
can keep the display link alive. Fix startOrStopDisplayLink() so it can be called from either thread.
RemoteLayerTreeEventDispatcher::willHandleWheelEvent() is used so allow the MomentumEventDispatcher to extract
the ScrollingAccelerationCurve from the native event.
Factor code into determineWheelEventProcessing() so we can call it before feeding events to MomentumEventDispatcher,
because we need to know if this event is relevant to the scrolling thread before handing it off to MomentumEventDispatcher,
which can't give an answer about whether it's handled.
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp:
(WebKit::RemoteLayerTreeEventDispatcher::create):
(WebKit::RemoteLayerTreeEventDispatcher::RemoteLayerTreeEventDispatcher):
(WebKit::m_momentumEventDispatcher):
(WebKit::RemoteLayerTreeEventDispatcher::wheelEventHysteresisUpdated):
(WebKit::RemoteLayerTreeEventDispatcher::hasNodeWithAnimatedScrollChanged):
(WebKit::RemoteLayerTreeEventDispatcher::willHandleWheelEvent):
(WebKit::RemoteLayerTreeEventDispatcher::handleWheelEvent):
(WebKit::RemoteLayerTreeEventDispatcher::determineWheelEventProcessing):
(WebKit::RemoteLayerTreeEventDispatcher::scrollingThreadHandleWheelEvent):
(WebKit::RemoteLayerTreeEventDispatcher::internalHandleWheelEvent):
(WebKit::RemoteLayerTreeEventDispatcher::startOrStopDisplayLink):
(WebKit::RemoteLayerTreeEventDispatcher::startOrStopDisplayLinkOnMainThread):
(WebKit::RemoteLayerTreeEventDispatcher::didRefreshDisplay):
(WebKit::RemoteLayerTreeEventDispatcher::mainThreadDisplayDidRefresh):
(WebKit::RemoteLayerTreeEventDispatcher::windowScreenDidChange):
(WebKit::RemoteLayerTreeEventDispatcher::handleSyntheticWheelEvent):
(WebKit::RemoteLayerTreeEventDispatcher::startDisplayDidRefreshCallbacks):
(WebKit::RemoteLayerTreeEventDispatcher::stopDisplayDidRefreshCallbacks):
(WebKit::RemoteLayerTreeEventDispatcher::flushMomentumEventLoggingSoon):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h:
* Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.h:
Canonical link: https://commits.webkit.org/260976@main
More information about the webkit-changes
mailing list