-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[visionOS] Remote Effects don't work inside of pointer-events: none
scrollers
#18351
base: main
Are you sure you want to change the base?
Conversation
EWS run on previous version of this PR (hash 598e129) |
Hi @aprotyas ! Mentioning you here because this seems tangentially related to https://bugs.webkit.org/show_bug.cgi?id=258255 |
598e129
to
578bd67
Compare
EWS run on previous version of this PR (hash 578bd67) |
@@ -225,6 +225,9 @@ class RenderLayerScrollableArea final : public ScrollableArea { | |||
void updateScrollbarsAfterStyleChange(const RenderStyle* oldStyle); | |||
void updateScrollbarsAfterLayout(); | |||
|
|||
ScrollbarMode horizontalScrollbarMode() const final; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think pointer-events:none
should affect the scrollbar mode (it doesn't affect how scrollbars render, only whether the user can interact).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it was a bit fragile having completely different codepaths calling into setScrollEnabled anyway.
Trying a simpler approach: a custom property on WKChildScrollView
.
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm
Outdated
Show resolved
Hide resolved
578bd67
to
3455e15
Compare
EWS run on previous version of this PR (hash 3455e15) |
3455e15
to
dab2be6
Compare
EWS run on previous version of this PR (hash dab2be6) |
dab2be6
to
fa1ef3e
Compare
EWS run on previous version of this PR (hash fa1ef3e) |
fa1ef3e
to
f551fca
Compare
EWS run on previous version of this PR (hash f551fca) |
f551fca
to
3e62c49
Compare
EWS run on previous version of this PR (hash 3e62c49) |
β¦ scrollers https://bugs.webkit.org/show_bug.cgi?id=262307 <rdar://115776753> Reviewed by NOBODY (OOPS!). Remote Effects use CA-based hit-testing. So when we set `userInteractionEnabled = NO` on a `pointer-events: none` ScrollView, we also prevent potential `pointer-events: auto` children from hit-testing. This patch introduces a new `_wk_userInteractive` flag on WKChildScrollViews that disables the scroll container without blocking hit-testing of its children. Effectively taking the view out of WKHitTesting without impacting its layer's `allowsHitTesting` property. * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView): Use `_wk_userInteractive` instead of `userInteractionEnabled` for WKChildScrollViews. * Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h: * Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (-[WKChildScrollView initWithFrame:]): Introduce the new `_wk_userInteractive` property defaulting to YES. (WebKit::collectDescendantViewsAtPoint): (WebKit::collectDescendantViewsInRect): Remove the FIXME since we use `userInteractionEnabled` for `WKNativelyInteractible` views. Skip WKChildScrollViews marked as `_wk_userInteractive = NO`. * Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h: Clean-up, remove unused member variable. * Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm: (dumpCALayer): Add `allowsHitTesting` to the dump format when Interaction Regions are turned on. * LayoutTests/interaction-region/scroll-view-hit-testing-expected.txt: Added. * LayoutTests/interaction-region/scroll-view-hit-testing.html: Added. Add a test covering the change, based on `touch-scroll-pointer-events-none.html`. * LayoutTests/interaction-region/interaction-layers-culling-expected.txt: * LayoutTests/interaction-region/layer-tree-expected.txt: Update expectations with the new format.
3e62c49
to
0fed4da
Compare
EWS run on current version of this PR (hash 0fed4da) |
0fed4da
0fed4da