Changeset 266923 in webkit
- Timestamp:
- Sep 11, 2020, 8:39:02 AM (6 years ago)
- Location:
- trunk
- 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
-
trunk/LayoutTests/ChangeLog
r266913 r266923 1 2020-09-11 Simon Fraser <simon.fraser@apple.com> 2 3 REGRESSION (Async overflow scroll): Mouse wheel scrolling over an "always-on" overflow scrollbar doesn't work 4 https://bugs.webkit.org/show_bug.cgi?id=216381 5 <rdar://problem/68593743> 6 7 Reviewed by Antti Koivisto. 8 9 * fast/scrolling/mac/border-radius-event-region-expected.txt: 10 * fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt: 11 * fast/scrolling/mac/event-region-subscroller-overflow-expected.txt: 12 * fast/scrolling/mac/event-region-visibility-hidden-expected.txt: 13 * fast/scrolling/mac/mousewheel-over-scrollbar-expected.txt: Added. 14 * fast/scrolling/mac/mousewheel-over-scrollbar.html: Added. 15 * fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt: 16 1 17 2020-09-10 Fujii Hironori <Hironori.Fujii@sony.com> 2 18 -
trunk/LayoutTests/fast/scrolling/mac/border-radius-event-region-expected.txt
r266846 r266923 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 ) -
trunk/LayoutTests/fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt
r260305 r266923 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 ) -
trunk/LayoutTests/fast/scrolling/mac/event-region-subscroller-overflow-expected.txt
r266846 r266923 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 ) -
trunk/LayoutTests/fast/scrolling/mac/event-region-visibility-hidden-expected.txt
r266846 r266923 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 ) -
trunk/LayoutTests/fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt
r266403 r266923 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 ) -
trunk/Source/WebCore/ChangeLog
r266922 r266923 1 2020-09-11 Simon Fraser <simon.fraser@apple.com> 2 3 REGRESSION (Async overflow scroll): Mouse wheel scrolling over an "always-on" overflow scrollbar doesn't work 4 https://bugs.webkit.org/show_bug.cgi?id=216381 5 <rdar://problem/68593743> 6 7 Reviewed by Antti Koivisto. 8 9 The scrollbar and scroll corner layers need event regions and scrollingNodeIDs so that 10 we hit-test them via CA layers and find the right scrolling node. 11 12 Test: fast/scrolling/mac/mousewheel-over-scrollbar.html 13 14 * rendering/RenderLayerBacking.cpp: 15 (WebCore::RenderLayerBacking::updateAfterDescendants): 16 (WebCore::RenderLayerBacking::updateEventRegion): 17 (WebCore::RenderLayerBacking::detachFromScrollingCoordinator): 18 (WebCore::RenderLayerBacking::setScrollingNodeIDForRole): 19 1 20 2020-09-11 Chris Dumez <cdumez@apple.com> 2 21 -
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
r266846 r266923 1528 1528 if (m_scrollContainerLayer) { 1529 1529 m_scrollContainerLayer->setContentsVisible(renderer().style().visibility() == Visibility::Visible); 1530 m_scrollContainerLayer->setUserInteractionEnabled(renderer().style().pointerEvents() != PointerEvents::None); 1530 1531 bool userInteractive = renderer().style().pointerEvents() != PointerEvents::None; 1532 m_scrollContainerLayer->setUserInteractionEnabled(userInteractive); 1533 if (m_layerForHorizontalScrollbar) 1534 m_layerForHorizontalScrollbar->setUserInteractionEnabled(userInteractive); 1535 if (m_layerForVerticalScrollbar) 1536 m_layerForVerticalScrollbar->setUserInteractionEnabled(userInteractive); 1537 if (m_layerForScrollCorner) 1538 m_layerForScrollCorner->setUserInteractionEnabled(userInteractive); 1531 1539 } 1532 1540 … … 1736 1744 TraceScope scope(ComputeEventRegionsStart, ComputeEventRegionsEnd); 1737 1745 1746 auto visibleToHitTesting = renderer().visibleToHitTesting(); 1747 1748 auto setEventRegionToLayerBounds = [&](GraphicsLayer* graphicsLayer) { 1749 if (!graphicsLayer) 1750 return; 1751 1752 EventRegion eventRegion; 1753 auto eventRegionContext = eventRegion.makeContext(); 1754 if (visibleToHitTesting) 1755 eventRegionContext.unite(enclosingIntRect(FloatRect({ }, graphicsLayer->size())), renderer().style()); 1756 1757 graphicsLayer->setEventRegion(WTFMove(eventRegion)); 1758 }; 1759 1738 1760 auto updateEventRegionForLayer = [&](GraphicsLayer& graphicsLayer) { 1739 1761 GraphicsContext nullContext(nullptr); … … 1746 1768 auto layerOffset = graphicsLayer.scrollOffset() - roundedIntSize(graphicsLayer.offsetFromRenderer()); 1747 1769 1748 if (renderer().visibleToHitTesting()) { 1749 if (&graphicsLayer == m_scrollContainerLayer) { 1750 eventRegionContext.unite(enclosingIntRect(FloatRect({ }, graphicsLayer.size())), renderer().style()); 1751 graphicsLayer.setEventRegion(WTFMove(eventRegion)); 1752 return; 1753 } 1754 1770 if (visibleToHitTesting) { 1755 1771 if (&graphicsLayer == m_scrolledContentsLayer) { 1756 1772 // Initialize scrolled contents layer with layer-sized event region as it can all used for scrolling. … … 1770 1786 updateEventRegionForLayer(*m_graphicsLayer); 1771 1787 1772 if (m_scrollContainerLayer) 1773 updateEventRegionForLayer(*m_scrollContainerLayer); 1788 setEventRegionToLayerBounds(m_scrollContainerLayer.get()); 1789 setEventRegionToLayerBounds(m_layerForHorizontalScrollbar.get()); 1790 setEventRegionToLayerBounds(m_layerForVerticalScrollbar.get()); 1791 setEventRegionToLayerBounds(m_layerForScrollCorner.get()); 1774 1792 1775 1793 if (m_scrolledContentsLayer) … … 2270 2288 if (m_scrollContainerLayer) 2271 2289 m_scrollContainerLayer->setScrollingNodeID(0); 2290 if (m_layerForHorizontalScrollbar) 2291 m_layerForHorizontalScrollbar->setScrollingNodeID(0); 2292 if (m_layerForVerticalScrollbar) 2293 m_layerForVerticalScrollbar->setScrollingNodeID(0); 2294 if (m_layerForScrollCorner) 2295 m_layerForScrollCorner->setScrollingNodeID(0); 2272 2296 #endif 2273 2297 } … … 2308 2332 if (m_scrollContainerLayer) 2309 2333 m_scrollContainerLayer->setScrollingNodeID(m_scrollingNodeID); 2334 2335 if (m_layerForHorizontalScrollbar) 2336 m_layerForHorizontalScrollbar->setScrollingNodeID(m_scrollingNodeID); 2337 if (m_layerForVerticalScrollbar) 2338 m_layerForVerticalScrollbar->setScrollingNodeID(m_scrollingNodeID); 2339 if (m_layerForScrollCorner) 2340 m_layerForScrollCorner->setScrollingNodeID(m_scrollingNodeID); 2310 2341 #endif 2311 2342 break;
Note:
See TracChangeset
for help on using the changeset viewer.