Changeset 267633 in webkit
- Timestamp:
- Sep 26, 2020, 2:08:45 PM (6 years ago)
- Location:
- branches/safari-610-branch
- Files:
-
- 2 added
- 8 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/scrolling/mac/border-radius-event-region-expected.txt (modified) (3 diffs)
-
LayoutTests/fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt (modified) (3 diffs)
-
LayoutTests/fast/scrolling/mac/event-region-subscroller-overflow-expected.txt (modified) (3 diffs)
-
LayoutTests/fast/scrolling/mac/event-region-visibility-hidden-expected.txt (modified) (3 diffs)
-
LayoutTests/fast/scrolling/mac/mousewheel-over-scrollbar-expected.txt (added)
-
LayoutTests/fast/scrolling/mac/mousewheel-over-scrollbar.html (added)
-
LayoutTests/fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt (modified) (3 diffs)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/rendering/RenderLayerBacking.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-610-branch/LayoutTests/ChangeLog
r267631 r267633 1 2020-09-25 Alan Coon <alancoon@apple.com> 2 3 Cherry-pick r266923. rdar://problem/69586712 4 5 REGRESSION (Async overflow scroll): Mouse wheel scrolling over an "always-on" overflow scrollbar doesn't work 6 https://bugs.webkit.org/show_bug.cgi?id=216381 7 <rdar://problem/68593743> 8 9 Reviewed by Antti Koivisto. 10 11 Source/WebCore: 12 13 The scrollbar and scroll corner layers need event regions and scrollingNodeIDs so that 14 we hit-test them via CA layers and find the right scrolling node. 15 16 Test: fast/scrolling/mac/mousewheel-over-scrollbar.html 17 18 * rendering/RenderLayerBacking.cpp: 19 (WebCore::RenderLayerBacking::updateAfterDescendants): 20 (WebCore::RenderLayerBacking::updateEventRegion): 21 (WebCore::RenderLayerBacking::detachFromScrollingCoordinator): 22 (WebCore::RenderLayerBacking::setScrollingNodeIDForRole): 23 24 LayoutTests: 25 26 * fast/scrolling/mac/border-radius-event-region-expected.txt: 27 * fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt: 28 * fast/scrolling/mac/event-region-subscroller-overflow-expected.txt: 29 * fast/scrolling/mac/event-region-visibility-hidden-expected.txt: 30 * fast/scrolling/mac/mousewheel-over-scrollbar-expected.txt: Added. 31 * fast/scrolling/mac/mousewheel-over-scrollbar.html: Added. 32 * fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt: 33 34 35 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266923 268f45cc-cd09-0410-ab3c-d52691b4dbfc 36 37 2020-09-11 Simon Fraser <simon.fraser@apple.com> 38 39 REGRESSION (Async overflow scroll): Mouse wheel scrolling over an "always-on" overflow scrollbar doesn't work 40 https://bugs.webkit.org/show_bug.cgi?id=216381 41 <rdar://problem/68593743> 42 43 Reviewed by Antti Koivisto. 44 45 * fast/scrolling/mac/border-radius-event-region-expected.txt: 46 * fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt: 47 * fast/scrolling/mac/event-region-subscroller-overflow-expected.txt: 48 * fast/scrolling/mac/event-region-visibility-hidden-expected.txt: 49 * fast/scrolling/mac/mousewheel-over-scrollbar-expected.txt: Added. 50 * fast/scrolling/mac/mousewheel-over-scrollbar.html: Added. 51 * fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt: 52 1 53 2020-09-25 Alan Coon <alancoon@apple.com> 2 54 -
branches/safari-610-branch/LayoutTests/fast/scrolling/mac/border-radius-event-region-expected.txt
r267271 r267633 36 36 (bounds 35.00 15.00) 37 37 (drawsContent 1) 38 (event region 39 (rect (0,0) width=35 height=15) 40 ) 38 41 ) 39 42 (GraphicsLayer … … 41 44 (bounds 15.00 35.00) 42 45 (drawsContent 1) 46 (event region 47 (rect (0,0) width=15 height=35) 48 ) 43 49 ) 44 50 (GraphicsLayer … … 46 52 (bounds 15.00 15.00) 47 53 (drawsContent 1) 54 (event region 55 (rect (0,0) width=15 height=15) 56 ) 48 57 ) 49 58 ) -
branches/safari-610-branch/LayoutTests/fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt
r260305 r267633 37 37 (bounds 285.00 15.00) 38 38 (drawsContent 1) 39 (event region 40 (rect (0,0) width=285 height=15) 41 ) 39 42 ) 40 43 (GraphicsLayer … … 42 45 (bounds 15.00 285.00) 43 46 (drawsContent 1) 47 (event region 48 (rect (0,0) width=15 height=285) 49 ) 44 50 ) 45 51 (GraphicsLayer … … 47 53 (bounds 15.00 15.00) 48 54 (drawsContent 1) 55 (event region 56 (rect (0,0) width=15 height=15) 57 ) 49 58 ) 50 59 ) -
branches/safari-610-branch/LayoutTests/fast/scrolling/mac/event-region-subscroller-overflow-expected.txt
r267271 r267633 58 58 (bounds 35.00 15.00) 59 59 (drawsContent 1) 60 (event region 61 (rect (0,0) width=35 height=15) 62 ) 60 63 ) 61 64 (GraphicsLayer … … 63 66 (bounds 15.00 35.00) 64 67 (drawsContent 1) 68 (event region 69 (rect (0,0) width=15 height=35) 70 ) 65 71 ) 66 72 (GraphicsLayer … … 68 74 (bounds 15.00 15.00) 69 75 (drawsContent 1) 76 (event region 77 (rect (0,0) width=15 height=15) 78 ) 70 79 ) 71 80 ) -
branches/safari-610-branch/LayoutTests/fast/scrolling/mac/event-region-visibility-hidden-expected.txt
r267271 r267633 38 38 (bounds 35.00 15.00) 39 39 (drawsContent 1) 40 (event region 41 (rect (0,0) width=35 height=15) 42 ) 40 43 ) 41 44 (GraphicsLayer … … 43 46 (bounds 15.00 35.00) 44 47 (drawsContent 1) 48 (event region 49 (rect (0,0) width=15 height=35) 50 ) 45 51 ) 46 52 (GraphicsLayer … … 48 54 (bounds 15.00 15.00) 49 55 (drawsContent 1) 56 (event region 57 (rect (0,0) width=15 height=15) 58 ) 50 59 ) 51 60 ) -
branches/safari-610-branch/LayoutTests/fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt
r266853 r267633 56 56 (bounds 425.00 15.00) 57 57 (drawsContent 1) 58 (event region 59 (rect (0,0) width=425 height=15) 60 ) 58 61 ) 59 62 (GraphicsLayer … … 61 64 (bounds 15.00 625.00) 62 65 (drawsContent 1) 66 (event region 67 (rect (0,0) width=15 height=625) 68 ) 63 69 ) 64 70 (GraphicsLayer … … 66 72 (bounds 15.00 15.00) 67 73 (drawsContent 1) 74 (event region 75 (rect (0,0) width=15 height=15) 76 ) 68 77 ) 69 78 ) -
branches/safari-610-branch/Source/WebCore/ChangeLog
r267632 r267633 1 2020-09-25 Alan Coon <alancoon@apple.com> 2 3 Cherry-pick r266923. rdar://problem/69586712 4 5 REGRESSION (Async overflow scroll): Mouse wheel scrolling over an "always-on" overflow scrollbar doesn't work 6 https://bugs.webkit.org/show_bug.cgi?id=216381 7 <rdar://problem/68593743> 8 9 Reviewed by Antti Koivisto. 10 11 Source/WebCore: 12 13 The scrollbar and scroll corner layers need event regions and scrollingNodeIDs so that 14 we hit-test them via CA layers and find the right scrolling node. 15 16 Test: fast/scrolling/mac/mousewheel-over-scrollbar.html 17 18 * rendering/RenderLayerBacking.cpp: 19 (WebCore::RenderLayerBacking::updateAfterDescendants): 20 (WebCore::RenderLayerBacking::updateEventRegion): 21 (WebCore::RenderLayerBacking::detachFromScrollingCoordinator): 22 (WebCore::RenderLayerBacking::setScrollingNodeIDForRole): 23 24 LayoutTests: 25 26 * fast/scrolling/mac/border-radius-event-region-expected.txt: 27 * fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt: 28 * fast/scrolling/mac/event-region-subscroller-overflow-expected.txt: 29 * fast/scrolling/mac/event-region-visibility-hidden-expected.txt: 30 * fast/scrolling/mac/mousewheel-over-scrollbar-expected.txt: Added. 31 * fast/scrolling/mac/mousewheel-over-scrollbar.html: Added. 32 * fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt: 33 34 35 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266923 268f45cc-cd09-0410-ab3c-d52691b4dbfc 36 37 2020-09-11 Simon Fraser <simon.fraser@apple.com> 38 39 REGRESSION (Async overflow scroll): Mouse wheel scrolling over an "always-on" overflow scrollbar doesn't work 40 https://bugs.webkit.org/show_bug.cgi?id=216381 41 <rdar://problem/68593743> 42 43 Reviewed by Antti Koivisto. 44 45 The scrollbar and scroll corner layers need event regions and scrollingNodeIDs so that 46 we hit-test them via CA layers and find the right scrolling node. 47 48 Test: fast/scrolling/mac/mousewheel-over-scrollbar.html 49 50 * rendering/RenderLayerBacking.cpp: 51 (WebCore::RenderLayerBacking::updateAfterDescendants): 52 (WebCore::RenderLayerBacking::updateEventRegion): 53 (WebCore::RenderLayerBacking::detachFromScrollingCoordinator): 54 (WebCore::RenderLayerBacking::setScrollingNodeIDForRole): 55 1 56 2020-09-25 Alan Coon <alancoon@apple.com> 2 57 -
branches/safari-610-branch/Source/WebCore/rendering/RenderLayerBacking.cpp
r267629 r267633 1536 1536 if (m_scrollContainerLayer) { 1537 1537 m_scrollContainerLayer->setContentsVisible(renderer().style().visibility() == Visibility::Visible); 1538 m_scrollContainerLayer->setUserInteractionEnabled(renderer().style().pointerEvents() != PointerEvents::None); 1538 1539 bool userInteractive = renderer().style().pointerEvents() != PointerEvents::None; 1540 m_scrollContainerLayer->setUserInteractionEnabled(userInteractive); 1541 if (m_layerForHorizontalScrollbar) 1542 m_layerForHorizontalScrollbar->setUserInteractionEnabled(userInteractive); 1543 if (m_layerForVerticalScrollbar) 1544 m_layerForVerticalScrollbar->setUserInteractionEnabled(userInteractive); 1545 if (m_layerForScrollCorner) 1546 m_layerForScrollCorner->setUserInteractionEnabled(userInteractive); 1539 1547 } 1540 1548 … … 1744 1752 TraceScope scope(ComputeEventRegionsStart, ComputeEventRegionsEnd); 1745 1753 1754 auto visibleToHitTesting = renderer().visibleToHitTesting(); 1755 1756 auto setEventRegionToLayerBounds = [&](GraphicsLayer* graphicsLayer) { 1757 if (!graphicsLayer) 1758 return; 1759 1760 EventRegion eventRegion; 1761 auto eventRegionContext = eventRegion.makeContext(); 1762 if (visibleToHitTesting) 1763 eventRegionContext.unite(enclosingIntRect(FloatRect({ }, graphicsLayer->size())), renderer().style()); 1764 1765 graphicsLayer->setEventRegion(WTFMove(eventRegion)); 1766 }; 1767 1746 1768 auto updateEventRegionForLayer = [&](GraphicsLayer& graphicsLayer) { 1747 1769 GraphicsContext nullContext(nullptr); … … 1754 1776 auto layerOffset = graphicsLayer.scrollOffset() - roundedIntSize(graphicsLayer.offsetFromRenderer()); 1755 1777 1756 if (renderer().visibleToHitTesting()) { 1757 if (&graphicsLayer == m_scrollContainerLayer) { 1758 eventRegionContext.unite(enclosingIntRect(FloatRect({ }, graphicsLayer.size())), renderer().style()); 1759 graphicsLayer.setEventRegion(WTFMove(eventRegion)); 1760 return; 1761 } 1762 1778 if (visibleToHitTesting) { 1763 1779 if (&graphicsLayer == m_scrolledContentsLayer) { 1764 1780 // Initialize scrolled contents layer with layer-sized event region as it can all used for scrolling. … … 1778 1794 updateEventRegionForLayer(*m_graphicsLayer); 1779 1795 1780 if (m_scrollContainerLayer) 1781 updateEventRegionForLayer(*m_scrollContainerLayer); 1796 setEventRegionToLayerBounds(m_scrollContainerLayer.get()); 1797 setEventRegionToLayerBounds(m_layerForHorizontalScrollbar.get()); 1798 setEventRegionToLayerBounds(m_layerForVerticalScrollbar.get()); 1799 setEventRegionToLayerBounds(m_layerForScrollCorner.get()); 1782 1800 1783 1801 if (m_scrolledContentsLayer) … … 2278 2296 if (m_scrollContainerLayer) 2279 2297 m_scrollContainerLayer->setScrollingNodeID(0); 2298 if (m_layerForHorizontalScrollbar) 2299 m_layerForHorizontalScrollbar->setScrollingNodeID(0); 2300 if (m_layerForVerticalScrollbar) 2301 m_layerForVerticalScrollbar->setScrollingNodeID(0); 2302 if (m_layerForScrollCorner) 2303 m_layerForScrollCorner->setScrollingNodeID(0); 2280 2304 #endif 2281 2305 } … … 2316 2340 if (m_scrollContainerLayer) 2317 2341 m_scrollContainerLayer->setScrollingNodeID(m_scrollingNodeID); 2342 2343 if (m_layerForHorizontalScrollbar) 2344 m_layerForHorizontalScrollbar->setScrollingNodeID(m_scrollingNodeID); 2345 if (m_layerForVerticalScrollbar) 2346 m_layerForVerticalScrollbar->setScrollingNodeID(m_scrollingNodeID); 2347 if (m_layerForScrollCorner) 2348 m_layerForScrollCorner->setScrollingNodeID(m_scrollingNodeID); 2318 2349 #endif 2319 2350 break;
Note:
See TracChangeset
for help on using the changeset viewer.