Changeset 244037 in webkit
- Timestamp:
- Apr 8, 2019 1:32:53 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r244036 r244037 1 2019-04-08 Antti Koivisto <antti@apple.com> 2 3 Update touch-action region on property changes 4 https://bugs.webkit.org/show_bug.cgi?id=196608 5 6 Reviewed by Simon Fraser. 7 8 * pointerevents/ios/touch-action-region-dynamic-expected.txt: Added. 9 * pointerevents/ios/touch-action-region-dynamic.html: Added. 10 1 11 2019-04-08 Javier Fernandez <jfernandez@igalia.com> 2 12 -
trunk/Source/WebCore/ChangeLog
r244036 r244037 1 2019-04-08 Antti Koivisto <antti@apple.com> 2 3 Update touch-action region on property changes 4 https://bugs.webkit.org/show_bug.cgi?id=196608 5 6 Reviewed by Simon Fraser. 7 8 Test: pointerevents/ios/touch-action-region-dynamic.html 9 10 * rendering/EventRegion.cpp: 11 (WebCore::EventRegion::touchActionsForPoint const): 12 13 Correctly return 'auto' when nothing is found from the regions (this code is not used yet). 14 15 * rendering/RenderElement.cpp: 16 (WebCore::RenderElement::styleWillChange): 17 18 React to 'touch-action' property changes, similarly to 'pointer-events'. 19 20 * rendering/RenderLayer.cpp: 21 (WebCore::RenderLayer::invalidateEventRegion): 22 23 Test if need to invalidate. 24 25 * rendering/RenderLayerBacking.cpp: 26 (WebCore::RenderLayerBacking::setContentsNeedDisplay): 27 (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): 28 29 Call invalidateEventRegion explicitly instead of relying on compositing update. This ensures 30 that we update the top level event region correctly when we have touch-actions. 31 1 32 2019-04-08 Javier Fernandez <jfernandez@igalia.com> 2 33 -
trunk/Source/WebCore/rendering/EventRegion.cpp
r243962 r244037 137 137 } 138 138 139 if (actions.isEmpty()) 140 return { TouchAction::Auto }; 141 139 142 return actions; 140 143 } -
trunk/Source/WebCore/rendering/RenderElement.cpp
r243709 r244037 731 731 } 732 732 733 if (m_style.pointerEvents() != newStyle.pointerEvents()) { 733 auto needsInvalidateEventRegion = [&] { 734 if (m_style.pointerEvents() != newStyle.pointerEvents()) 735 return true; 736 #if ENABLE(POINTER_EVENTS) 737 if (m_style.effectiveTouchActions() != newStyle.effectiveTouchActions()) 738 return true; 739 #endif 740 return false; 741 }; 742 743 if (needsInvalidateEventRegion()) { 734 744 // Usually the event region gets updated as a result of paint invalidation. Here we need to request an update explicitly. 735 745 if (auto* layer = enclosingLayer()) -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r243962 r244037 6686 6686 void RenderLayer::invalidateEventRegion() 6687 6687 { 6688 if (auto* compositingLayer = enclosingCompositingLayerForRepaint()) 6689 compositingLayer->setNeedsCompositingConfigurationUpdate(); 6688 #if PLATFORM(IOS_FAMILY) 6689 auto* compositingLayer = enclosingCompositingLayerForRepaint(); 6690 if (!compositingLayer) 6691 return; 6692 6693 auto maintainsEventRegion = [&] { 6694 // UI side scroll overlap testing. 6695 if (!compositingLayer->isRenderViewLayer()) 6696 return true; 6697 #if ENABLE(POINTER_EVENTS) 6698 // UI side touch-action resolution. 6699 if (renderer().document().touchActionElements()) 6700 return true; 6701 #endif 6702 return false; 6703 }; 6704 6705 if (!maintainsEventRegion()) 6706 return; 6707 6708 compositingLayer->setNeedsCompositingConfigurationUpdate(); 6709 #endif 6690 6710 } 6691 6711 -
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
r243962 r244037 2487 2487 m_owningLayer.setNeedsCompositingConfigurationUpdate(); 2488 2488 2489 m_owningLayer.invalidateEventRegion(); 2490 2489 2491 auto& frameView = renderer().view().frameView(); 2490 2492 if (m_isMainFrameRenderViewLayer && frameView.isTrackingRepaints()) … … 2524 2526 if (!m_owningLayer.isRenderViewLayer()) 2525 2527 m_owningLayer.setNeedsCompositingConfigurationUpdate(); 2528 2529 m_owningLayer.invalidateEventRegion(); 2526 2530 2527 2531 FloatRect pixelSnappedRectForPainting = snapRectToDevicePixels(r, deviceScaleFactor());
Note: See TracChangeset
for help on using the changeset viewer.