Changeset 243893 in webkit
- Timestamp:
- Apr 4, 2019 1:28:46 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 8 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r243883 r243893 1 2019-04-04 Antti Koivisto <antti@apple.com> 2 3 Compute accurate regions for touch-action 4 https://bugs.webkit.org/show_bug.cgi?id=196536 5 <rdar://problem/49516022> 6 7 Reviewed by Simon Fraser. 8 9 * pointerevents/ios/touch-action-region-basic-expected.txt: Added. 10 * pointerevents/ios/touch-action-region-basic.html: Added. 11 * pointerevents/ios/touch-action-region-layers-expected.txt: Added. 12 * pointerevents/ios/touch-action-region-layers.html: Added. 13 * pointerevents/ios/touch-action-region-pan-x-y-expected.txt: Added. 14 * pointerevents/ios/touch-action-region-pan-x-y.html: Added. 15 1 16 2019-04-04 Manuel Rego Casasnovas <rego@igalia.com> 2 17 -
trunk/Source/WebCore/ChangeLog
r243890 r243893 1 2019-04-04 Antti Koivisto <antti@apple.com> 2 3 Compute accurate regions for touch-action 4 https://bugs.webkit.org/show_bug.cgi?id=196536 5 <rdar://problem/49516022> 6 7 Reviewed by Simon Fraser. 8 9 Tests: pointerevents/ios/touch-action-region-basic.html 10 pointerevents/ios/touch-action-region-layers.html 11 pointerevents/ios/touch-action-region-pan-x-y.html 12 13 - Use style system to compute effective touch-action without additional tree walks. 14 - Compute touch-action region in a fake paint, at the same time with the event region. 15 16 This patch doesn't yet use the computed region for anything except test output. 17 18 * Sources.txt: 19 * WebCore.xcodeproj/project.pbxproj: 20 * css/StyleResolver.cpp: 21 (WebCore::computeEffectiveTouchActions): 22 (WebCore::StyleResolver::adjustRenderStyle): 23 24 Update RenderStyle::effectiveTouchAction. 25 26 * dom/Element.cpp: 27 (WebCore::Element::computedTouchActions const): 28 29 Just get it from the style. 30 31 * platform/graphics/GraphicsLayer.cpp: 32 (WebCore::GraphicsLayer::setEventRegion): 33 (WebCore::GraphicsLayer::setTouchActionRegion): 34 (WebCore::GraphicsLayer::dumpProperties const): 35 * platform/graphics/GraphicsLayer.h: 36 (WebCore::GraphicsLayer::touchActionRegion const): 37 * platform/graphics/ca/GraphicsLayerCA.cpp: 38 (WebCore::GraphicsLayerCA::setTouchActionRegion): 39 * platform/graphics/ca/GraphicsLayerCA.h: 40 * rendering/PaintInfo.h: 41 * rendering/RenderBlock.cpp: 42 (WebCore::RenderBlock::paintObject): 43 * rendering/RenderLayer.cpp: 44 (WebCore::RenderLayer::collectEventRegionForFragments): 45 * rendering/RenderLayer.h: 46 * rendering/RenderLayerBacking.cpp: 47 (WebCore::RenderLayerBacking::updateConfiguration): 48 49 Need to do this for the top compositing layer too. 50 51 (WebCore::RenderLayerBacking::updateEventRegion): 52 53 Compute touch-action region too. 54 As a basic optimization avoid doing any extra work if there are no elements with non-default touch-action property. 55 56 * rendering/TouchActionRegion.cpp: Added. 57 (WebCore::toIndex): 58 (WebCore::toTouchAction): 59 (WebCore::toString): 60 (WebCore::TouchActionRegion::unite): 61 (WebCore::TouchActionRegion::actionsForPoint const): 62 (WebCore::TouchActionRegion::translate): 63 (WebCore::operator<<): 64 * rendering/TouchActionRegion.h: Added. 65 66 Class for collecting and maintaining touch-action region. 67 68 (WebCore::TouchActionRegion::isEmpty const): 69 (WebCore::TouchActionRegion::operator== const): 70 * rendering/style/RenderStyle.h: 71 (WebCore::RenderStyle::effectiveTouchActions const): 72 (WebCore::RenderStyle::setEffectiveTouchActions): 73 74 Implement as inherited property for efficiency (touch-action itself is non-inherited). 75 76 * rendering/style/StyleRareInheritedData.cpp: 77 (WebCore::StyleRareInheritedData::StyleRareInheritedData): 78 (WebCore::StyleRareInheritedData::operator== const): 79 * rendering/style/StyleRareInheritedData.h: 80 1 81 2019-04-04 Yusuke Suzuki <ysuzuki@apple.com> 2 82 -
trunk/Source/WebCore/Sources.txt
r243887 r243893 2069 2069 rendering/TextPaintStyle.cpp 2070 2070 rendering/TextPainter.cpp 2071 rendering/TouchActionRegion.cpp 2071 2072 rendering/TrailingFloatsRootInlineBox.cpp 2072 2073 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r243890 r243893 4823 4823 E4A814DA1C70E10D00BF85AC /* AttributeChangeInvalidation.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A814D91C70E10D00BF85AC /* AttributeChangeInvalidation.h */; }; 4824 4824 E4A814E01C7338EB00BF85AC /* IdChangeInvalidation.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A814DF1C7338EB00BF85AC /* IdChangeInvalidation.h */; }; 4825 E4A8D21022538FD200A8463C /* TouchActionRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A8D20F22538FD100A8463C /* TouchActionRegion.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4825 4826 E4AE7C1617D1BB950009FB31 /* ElementIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AE7C1517D1BB950009FB31 /* ElementIterator.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4826 4827 E4AE7C1A17D232350009FB31 /* ElementAncestorIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AE7C1917D232350009FB31 /* ElementAncestorIterator.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 14884 14885 E4A814DD1C7338D100BF85AC /* IdChangeInvalidation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IdChangeInvalidation.cpp; sourceTree = "<group>"; }; 14885 14886 E4A814DF1C7338EB00BF85AC /* IdChangeInvalidation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IdChangeInvalidation.h; sourceTree = "<group>"; }; 14887 E4A8D20C22538FC700A8463C /* TouchActionRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TouchActionRegion.cpp; sourceTree = "<group>"; }; 14888 E4A8D20F22538FD100A8463C /* TouchActionRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchActionRegion.h; sourceTree = "<group>"; }; 14886 14889 E4AE7C1517D1BB950009FB31 /* ElementIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementIterator.h; sourceTree = "<group>"; }; 14887 14890 E4AE7C1917D232350009FB31 /* ElementAncestorIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementAncestorIterator.h; sourceTree = "<group>"; }; … … 27055 27058 E4C91A0F1802343900A17F6D /* TextPaintStyle.cpp */, 27056 27059 E4C91A0D1802343100A17F6D /* TextPaintStyle.h */, 27060 E4A8D20C22538FC700A8463C /* TouchActionRegion.cpp */, 27061 E4A8D20F22538FD100A8463C /* TouchActionRegion.h */, 27057 27062 1100FC6E1FDB3C4D00DD961B /* TrailingFloatsRootInlineBox.cpp */, 27058 27063 37FC96DA1104ED71003E1FAD /* TrailingFloatsRootInlineBox.h */, … … 29496 29501 FDA15EAE12B03EE1003A583A /* JSAudioListener.h in Headers */, 29497 29502 FDA15EB012B03EE1003A583A /* JSAudioNode.h in Headers */, 29503 E4A8D21022538FD200A8463C /* TouchActionRegion.h in Headers */, 29498 29504 FDA15EB412B03EE1003A583A /* JSAudioParam.h in Headers */, 29499 29505 FDA15EB612B03EE1003A583A /* JSAudioProcessingEvent.h in Headers */, -
trunk/Source/WebCore/css/StyleResolver.cpp
r243275 r243893 746 746 } 747 747 748 #if ENABLE(OVERFLOW_SCROLLING_TOUCH) 748 #if ENABLE(OVERFLOW_SCROLLING_TOUCH) || ENABLE(POINTER_EVENTS) 749 749 static bool isScrollableOverflow(Overflow overflow) 750 750 { … … 843 843 } 844 844 845 #if ENABLE(POINTER_EVENTS) 846 static OptionSet<TouchAction> computeEffectiveTouchActions(const RenderStyle& style, OptionSet<TouchAction> effectiveTouchActions) 847 { 848 // https://w3c.github.io/pointerevents/#determining-supported-touch-behavior 849 // "A touch behavior is supported if it conforms to the touch-action property of each element between 850 // the hit tested element and its nearest ancestor with the default touch behavior (including both the 851 // hit tested element and the element with the default touch behavior)." 852 853 bool hasDefaultTouchBehavior = isScrollableOverflow(style.overflowX()) || isScrollableOverflow(style.overflowY()); 854 if (hasDefaultTouchBehavior) 855 effectiveTouchActions = RenderStyle::initialTouchActions(); 856 857 auto touchActions = style.touchActions(); 858 if (touchActions == RenderStyle::initialTouchActions()) 859 return effectiveTouchActions; 860 861 if (effectiveTouchActions.contains(TouchAction::None)) 862 return { TouchAction::None }; 863 864 if (effectiveTouchActions.contains(TouchAction::Auto) || effectiveTouchActions.contains(TouchAction::Manipulation)) 865 return touchActions; 866 867 auto sharedTouchActions = effectiveTouchActions & touchActions; 868 if (sharedTouchActions.isEmpty()) 869 return { TouchAction::None }; 870 871 return sharedTouchActions; 872 } 873 #endif 874 845 875 void StyleResolver::adjustRenderStyle(RenderStyle& style, const RenderStyle& parentStyle, const RenderStyle* parentBoxStyle, const Element* element) 846 876 { … … 1088 1118 if (parentBoxStyle->justifyItems().positionType() == ItemPositionType::Legacy && style.justifyItems().position() == ItemPosition::Legacy) 1089 1119 style.setJustifyItems(parentBoxStyle->justifyItems()); 1120 1121 #if ENABLE(POINTER_EVENTS) 1122 style.setEffectiveTouchActions(computeEffectiveTouchActions(style, parentStyle.effectiveTouchActions())); 1123 #endif 1090 1124 } 1091 1125 -
trunk/Source/WebCore/dom/Element.cpp
r243830 r243893 4220 4220 OptionSet<TouchAction> Element::computedTouchActions() const 4221 4221 { 4222 OptionSet<TouchAction> computedTouchActions = TouchAction::Auto; 4223 for (auto* element = this; element; element = parentCrossingFrameBoundaries(element)) { 4224 auto* renderer = element->renderer(); 4225 if (!renderer) 4226 continue; 4227 4228 auto touchActions = renderer->style().touchActions(); 4229 4230 // Once we've encountered touch-action: none, we know that this will be the computed value. 4231 if (touchActions == TouchAction::None) 4232 return touchActions; 4233 4234 // If the computed touch-action so far was "auto", we can just use the current element's touch-action. 4235 if (computedTouchActions == TouchAction::Auto) { 4236 computedTouchActions = touchActions; 4237 continue; 4238 } 4239 4240 // If the current element has touch-action: auto or the same touch-action as the computed touch-action, 4241 // we need to keep going up the ancestry chain. 4242 if (touchActions == TouchAction::Auto || touchActions == computedTouchActions) 4243 continue; 4244 4245 // Now, the element's touch-action and the computed touch-action are different and are neither "auto" nor "none". 4246 if (computedTouchActions == TouchAction::Manipulation) { 4247 // If the computed touch-action is "manipulation", we can take the current element's touch-action as the newly 4248 // computed touch-action. 4249 computedTouchActions = touchActions; 4250 } else if (touchActions == TouchAction::Manipulation) { 4251 // Otherwise, we have a restricted computed touch-action so far. If the current element's touch-action is "manipulation" 4252 // then we can just keep going and leave the computed touch-action untouched. 4253 continue; 4254 } 4255 4256 // In any other case, we have competing restrictive touch-action values that can only yield "none". 4257 return TouchAction::None; 4258 } 4259 return computedTouchActions; 4222 if (auto* style = renderOrDisplayContentsStyle()) 4223 return style->effectiveTouchActions(); 4224 4225 return TouchAction::Auto; 4260 4226 } 4261 4227 -
trunk/Source/WebCore/platform/TouchAction.h
r243648 r243893 28 28 #if ENABLE(POINTER_EVENTS) 29 29 30 #include <wtf/text/TextStream.h> 31 30 32 namespace WebCore { 31 33 … … 39 41 }; 40 42 43 TextStream& operator<<(TextStream&, TouchAction); 44 41 45 } 42 46 -
trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp
r243674 r243893 414 414 void GraphicsLayer::setEventRegion(Region&& eventRegion) 415 415 { 416 m_eventRegion = eventRegion; 417 } 416 m_eventRegion = WTFMove(eventRegion); 417 } 418 419 #if ENABLE(POINTER_EVENTS) 420 void GraphicsLayer::setTouchActionRegion(TouchActionRegion&& touchActionRegion) 421 { 422 m_touchActionRegion = WTFMove(touchActionRegion); 423 } 424 #endif 418 425 419 426 void GraphicsLayer::noteDeviceOrPageScaleFactorChangedIncludingDescendants() … … 927 934 } 928 935 929 if (behavior & LayerTreeAsTextIncludeEventRegion && !m_eventRegion.isEmpty()) 930 ts << indent << "(event region" << m_eventRegion << ")\n"; 936 if (behavior & LayerTreeAsTextIncludeEventRegion) { 937 if (!m_eventRegion.isEmpty()) 938 ts << indent << "(event region" << m_eventRegion << ")\n"; 939 #if ENABLE(POINTER_EVENTS) 940 if (!m_touchActionRegion.isEmpty()) 941 ts << indent << "(touch-action region" << m_touchActionRegion << ")\n"; 942 #endif 943 } 931 944 932 945 if (behavior & LayerTreeAsTextIncludePaintingPhases && paintingPhase()) { -
trunk/Source/WebCore/platform/graphics/GraphicsLayer.h
r243134 r243893 38 38 #include "Region.h" 39 39 #include "ScrollableArea.h" 40 #include "TouchActionRegion.h" 40 41 #include "TransformOperations.h" 41 42 #include "WindRule.h" … … 456 457 const Region& eventRegion() const { return m_eventRegion; } 457 458 virtual void setEventRegion(Region&&); 458 459 #if ENABLE(POINTER_EVENTS) 460 const TouchActionRegion& touchActionRegion() const { return m_touchActionRegion; } 461 virtual void setTouchActionRegion(TouchActionRegion&&); 462 #endif 459 463 // Transitions are identified by a special animation name that cannot clash with a keyframe identifier. 460 464 static String animationNameForTransition(AnimatedPropertyID); … … 732 736 733 737 Region m_eventRegion; 734 738 #if ENABLE(POINTER_EVENTS) 739 TouchActionRegion m_touchActionRegion; 740 #endif 735 741 #if USE(CA) 736 742 WindRule m_shapeLayerWindRule { WindRule::NonZero }; -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r243007 r243893 994 994 } 995 995 996 #if ENABLE(POINTER_EVENTS) 997 void GraphicsLayerCA::setTouchActionRegion(TouchActionRegion&& touchActionRegion) 998 { 999 if (touchActionRegion == m_touchActionRegion) 1000 return; 1001 1002 GraphicsLayer::setTouchActionRegion(WTFMove(touchActionRegion)); 1003 // FIXME: Invalidate and pass to platform layer. 1004 } 1005 #endif 1006 996 1007 bool GraphicsLayerCA::shouldRepaintOnSizeChange() const 997 1008 { -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
r243007 r243893 126 126 127 127 WEBCORE_EXPORT void setEventRegion(Region&&) override; 128 128 #if ENABLE(POINTER_EVENTS) 129 WEBCORE_EXPORT void setTouchActionRegion(TouchActionRegion&&) override; 130 #endif 129 131 WEBCORE_EXPORT void suspendAnimations(MonotonicTime) override; 130 132 WEBCORE_EXPORT void resumeAnimations() override; -
trunk/Source/WebCore/rendering/PaintInfo.h
r242794 r243893 45 45 class RenderObject; 46 46 47 #if ENABLE(POINTER_EVENTS) 48 class TouchActionRegion; 49 #endif 50 47 51 typedef HashMap<OverlapTestRequestClient*, IntRect> OverlapTestRequestMap; 48 52 … … 132 136 const RenderLayer* m_enclosingSelfPaintingLayer { nullptr }; 133 137 Region* eventRegion { nullptr }; // For PaintPhase::EventRegion. 134 138 #if ENABLE(POINTER_EVENTS) 139 TouchActionRegion* touchActionRegion { nullptr }; 140 #endif 135 141 private: 136 142 GraphicsContext* m_context; -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r243694 r243893 71 71 #include "ShadowRoot.h" 72 72 #include "ShapeOutsideInfo.h" 73 #include "TouchActionRegion.h" 73 74 #include "TransformState.h" 74 75 #include <wtf/IsoMallocInlines.h> … … 1247 1248 auto borderRegion = approximateAsRegion(style().getRoundedBorderFor(borderRect)); 1248 1249 paintInfo.eventRegion->unite(borderRegion); 1250 #if ENABLE(POINTER_EVENTS) 1251 if (paintInfo.touchActionRegion) 1252 paintInfo.touchActionRegion->unite(borderRegion, style().effectiveTouchActions()); 1253 #endif 1249 1254 } 1250 1255 1251 1256 // No need to check descendants if we don't have overflow and the area is already covered. 1252 if (!hasVisualOverflow() && paintInfo.eventRegion->contains(enclosingIntRect(borderRect))) 1257 bool needsTraverseDescendants = hasVisualOverflow() || !paintInfo.eventRegion->contains(enclosingIntRect(borderRect)); 1258 #if ENABLE(POINTER_EVENTS) 1259 needsTraverseDescendants = needsTraverseDescendants || paintInfo.touchActionRegion; 1260 #endif 1261 if (!needsTraverseDescendants) 1253 1262 return; 1254 1263 } -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r243709 r243893 4871 4871 PaintInfo paintInfo(context, fragment.foregroundRect.rect(), PaintPhase::EventRegion, { }); 4872 4872 paintInfo.eventRegion = localPaintingInfo.eventRegion; 4873 #if ENABLE(POINTER_EVENTS) 4874 paintInfo.touchActionRegion = localPaintingInfo.touchActionRegion; 4875 #endif 4873 4876 renderer().paint(paintInfo, toLayoutPoint(fragment.layerBounds.location() - renderBoxLocation() + localPaintingInfo.subpixelOffset)); 4874 4877 } -
trunk/Source/WebCore/rendering/RenderLayer.h
r243709 r243893 81 81 class TransformationMatrix; 82 82 83 #if ENABLE(POINTER_EVENTS) 84 class TouchActionRegion; 85 #endif 86 83 87 enum BorderRadiusClippingRule { IncludeSelfForBorderRadius, DoNotIncludeSelfForBorderRadius }; 84 88 enum IncludeSelfOrNot { IncludeSelf, ExcludeSelf }; … … 915 919 bool clipToDirtyRect { true }; 916 920 Region* eventRegion { nullptr }; 921 #if ENABLE(POINTER_EVENTS) 922 TouchActionRegion* touchActionRegion { nullptr }; 923 #endif 917 924 }; 918 925 -
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
r243151 r243893 766 766 bool didUpdateContentsRect = false; 767 767 updateDirectlyCompositedBoxDecorations(contentsInfo, didUpdateContentsRect); 768 769 updateEventRegion();770 768 } else 771 769 updateRootLayerConfiguration(); 770 771 updateEventRegion(); 772 772 773 773 // Requires layout. … … 1440 1440 return; 1441 1441 1442 bool hasTouchActionElements = false; 1443 #if ENABLE(POINTER_EVENTS) 1444 hasTouchActionElements = !!renderer().document().touchActionElements(); 1445 #endif 1446 if (m_owningLayer.isRenderViewLayer() && !hasTouchActionElements) 1447 return; 1448 1442 1449 GraphicsContext nullContext(nullptr); 1443 1450 RenderLayer::LayerPaintingInfo paintingInfo(&m_owningLayer, compositedBounds(), { }, LayoutSize()); … … 1446 1453 paintingInfo.eventRegion = &eventRegion; 1447 1454 1455 #if ENABLE(POINTER_EVENTS) 1456 TouchActionRegion touchActionRegion; 1457 if (hasTouchActionElements) 1458 paintingInfo.touchActionRegion = &touchActionRegion; 1459 #endif 1460 1448 1461 auto paintFlags = RenderLayer::paintLayerPaintingCompositingAllPhasesFlags() | RenderLayer::PaintLayerCollectingEventRegion; 1449 1462 m_owningLayer.paintLayerContents(nullContext, paintingInfo, paintFlags); 1450 1463 1451 eventRegion.translate(roundedIntSize(contentOffsetInCompositingLayer()));1452 1464 auto contentOffset = roundedIntSize(contentOffsetInCompositingLayer()); 1465 eventRegion.translate(contentOffset); 1453 1466 m_graphicsLayer->setEventRegion(WTFMove(eventRegion)); 1467 1468 #if ENABLE(POINTER_EVENTS) 1469 touchActionRegion.translate(contentOffset); 1470 m_graphicsLayer->setTouchActionRegion(WTFMove(touchActionRegion)); 1471 #endif 1454 1472 #endif 1455 1473 } -
trunk/Source/WebCore/rendering/style/RenderStyle.h
r243841 r243893 707 707 #if ENABLE(POINTER_EVENTS) 708 708 OptionSet<TouchAction> touchActions() const { return OptionSet<TouchAction>::fromRaw(m_rareNonInheritedData->touchActions); } 709 // 'touch-action' behavior depends on values in ancestors. We use an additional inherited property to implement that. 710 OptionSet<TouchAction> effectiveTouchActions() const { return OptionSet<TouchAction>::fromRaw(m_rareInheritedData->effectiveTouchActions); } 709 711 #endif 710 712 … … 1226 1228 #if ENABLE(POINTER_EVENTS) 1227 1229 void setTouchActions(OptionSet<TouchAction> touchActions) { SET_VAR(m_rareNonInheritedData, touchActions, touchActions.toRaw()); } 1230 void setEffectiveTouchActions(OptionSet<TouchAction> touchActions) { SET_VAR(m_rareInheritedData, effectiveTouchActions, touchActions.toRaw()); } 1228 1231 #endif 1229 1232 -
trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp
r243819 r243893 138 138 , hasSetStrokeWidth(false) 139 139 , hasSetStrokeColor(false) 140 #if ENABLE(POINTER_EVENTS) 141 , effectiveTouchActions(static_cast<unsigned>(RenderStyle::initialTouchActions())) 142 #endif 140 143 , strokeWidth(RenderStyle::initialStrokeWidth()) 141 144 , strokeColor(RenderStyle::initialStrokeColor()) … … 233 236 , hasSetStrokeWidth(o.hasSetStrokeWidth) 234 237 , hasSetStrokeColor(o.hasSetStrokeColor) 238 #if ENABLE(POINTER_EVENTS) 239 , effectiveTouchActions(o.effectiveTouchActions) 240 #endif 235 241 , strokeWidth(o.strokeWidth) 236 242 , strokeColor(o.strokeColor) … … 355 361 && hasSetStrokeWidth == o.hasSetStrokeWidth 356 362 && hasSetStrokeColor == o.hasSetStrokeColor 363 #if ENABLE(POINTER_EVENTS) 364 && effectiveTouchActions == o.effectiveTouchActions 365 #endif 357 366 && strokeWidth == o.strokeWidth 358 367 && strokeColor == o.strokeColor -
trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h
r243819 r243893 153 153 unsigned hasSetStrokeWidth : 1; 154 154 unsigned hasSetStrokeColor : 1; 155 156 #if ENABLE(POINTER_EVENTS) 157 unsigned effectiveTouchActions : 6; // OptionSet<TouchAction> 158 #endif 159 155 160 Length strokeWidth; 156 161 Color strokeColor;
Note: See TracChangeset
for help on using the changeset viewer.