Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: caec1d312c597c37515751aedbec9433978fb627
https://github.com/WebKit/WebKit/commit/caec1d312c597c37515751aedbec9433978fb627
Author: Nikolaos Mouchtaris <[email protected]>
Date: 2023-04-14 (Fri, 14 Apr 2023)
Changed paths:
M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
M Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp
M Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h
M Source/WebCore/page/scrolling/ScrollingTreeScrollingNodeDelegate.h
M Source/WebCore/page/scrolling/mac/ScrollerMac.h
M Source/WebCore/page/scrolling/mac/ScrollerMac.mm
M Source/WebCore/page/scrolling/mac/ScrollerPairMac.h
M Source/WebCore/page/scrolling/mac/ScrollerPairMac.mm
M Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h
M Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm
M
Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.h
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm
M
Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp
M
Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp
Log Message:
-----------
[Ui-side compositing] Fix mouse position reporting to AppKit in
WebScrollerImpPairDelegateMac
https://bugs.webkit.org/show_bug.cgi?id=255188
rdar://107776583
Reviewed by Simon Fraser.
This patch aims to fix several issues with the way ScrollerPairMac and
ScrollerMac handle
mouse events, with the intent of fixing hovering over overlay scrollbars in
overflow scrolling
nodes. The first issue is that currently there isn't a good way to convert the
frame relative
mouse position to a scrollbar relative mouse position. To work around this,
bundle the scrollbar
relative mouse positions in the mouseMovedInContentArea event. When we know
that we have updated
mouse positions from the WebProcess, return them in the various
WebScrollerImpPairDelegateMac
functions. The second issue is that RemoteScrollingTree is only calling
handleMouseEvent
on the root scroller. Since this mouse position was only being used as input to
convertContentPoint,
it is ok to just return a zero point and use the converted mouse position from
the Web Process.
* Source/WebCore/page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::lastKnownMousePosition):
* Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::lastKnownMousePosition const):
* Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h:
* Source/WebCore/page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
(WebCore::ScrollingTreeScrollingNodeDelegate::lastKnownMousePosition const):
* Source/WebCore/page/scrolling/mac/ScrollerMac.mm:
(-[WebScrollerImpDelegateMac mouseLocationInScrollerForScrollerImp:]):
* Source/WebCore/page/scrolling/mac/ScrollerPairMac.h:
(WebCore::ScrollerPairMac::node const):
(WebCore::ScrollerPairMac::lastKnownMousePosition const): Deleted.
* Source/WebCore/page/scrolling/mac/ScrollerPairMac.mm:
(-[WebScrollerImpPairDelegateMac
mouseLocationInContentAreaForScrollerImpPair:]):
(-[WebScrollerImpPairDelegateMac
scrollerImpPair:convertContentPoint:toScrollerImp:]):
(WebCore::ScrollerPairMac::lastKnownMousePosition const):
* Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
* Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::lastKnownMousePosition const):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm:
(WebKit::RemoteScrollingTreeMac::lastKnownMousePosition):
*
Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::lastKnownMousePosition):
*
Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
Canonical link: https://commits.webkit.org/262995@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes