[webkit-changes] [WebKit/WebKit] d9636c: [UI-side compositng] Flashing scrollbars via two f...

Nikos Mouchtaris noreply at github.com
Tue Mar 7 10:29:57 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d9636c006aee4698e2722a5f6b414c18fc51c71b
      https://github.com/WebKit/WebKit/commit/d9636c006aee4698e2722a5f6b414c18fc51c71b
  Author: Nikolaos Mouchtaris <nmouchtaris at apple.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeScrollingNodeDelegate.h
    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/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h

  Log Message:
  -----------
  [UI-side compositng] Flashing scrollbars via two finger gesture causes the scrollbar to never hide
https://bugs.webkit.org/show_bug.cgi?id=253471
rdar://106329824

Reviewed by Simon Fraser.

Doing the two finger gesture generates two wheel events, one that is a may begin event
and the second which is an ended event. With ui-side compositng on, we never hide the
scrollbars when the ended event comes in because we never reach handleWheelEvent for the
scrolling node. To solve this, factor the scrollbar updates out of the scrolling node's
handleWheelEvent function into a handleWheelEventPhase function. Hook this up to
RemoteScrollingTreeMac::handleWheelEventPhase.

* Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h:
* Source/WebCore/page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
(WebCore::ScrollingTreeScrollingNodeDelegate::handleWheelEventPhase):
(WebCore::ScrollingTreeScrollingNodeDelegate::handleWheelEventForScrollbars): Deleted.
* Source/WebCore/page/scrolling/mac/ScrollerPairMac.h:
* Source/WebCore/page/scrolling/mac/ScrollerPairMac.mm:
(WebCore::ScrollerPairMac::handleWheelEventPhase):
(WebCore::ScrollerPairMac::handleWheelEvent): Deleted.
* Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
* Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEventPhase):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEventForScrollbars): Deleted.
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm:
(WebKit::RemoteScrollingTreeMac::handleWheelEventPhase):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::handleWheelEventPhase):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::handleWheelEvent):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::handleWheelEventPhase):
(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::handleWheelEvent):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h:

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




More information about the webkit-changes mailing list