⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 243709 in webkit


Ignore:
Timestamp:
Apr 1, 2019, 12:53:00 PM (7 years ago)
Author:
Antti Koivisto
Message:

Update event region when toggling pointer-events:none
https://bugs.webkit.org/show_bug.cgi?id=195902
<rdar://problem/48988384>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/ios/event-region-pointer-events.html

Normally paint invalidation requests compositing configuration update whenever anything that would
affect event region changes. However mutating 'pointer-events' property does not cause paint invalidation.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

Request compositing update explicitly from the containing layer.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::invalidateEventRegion):

  • rendering/RenderLayer.h:

LayoutTests:

  • fast/scrolling/ios/event-region-pointer-events-expected.txt: Added.
  • fast/scrolling/ios/event-region-pointer-events.html: Added.
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r243705 r243709  
     12019-04-01  Antti Koivisto  <antti@apple.com>
     2
     3        Update event region when toggling pointer-events:none
     4        https://bugs.webkit.org/show_bug.cgi?id=195902
     5        <rdar://problem/48988384>
     6
     7        Reviewed by Simon Fraser.
     8
     9        * fast/scrolling/ios/event-region-pointer-events-expected.txt: Added.
     10        * fast/scrolling/ios/event-region-pointer-events.html: Added.
     11
    1122019-04-01  Chris Dumez  <cdumez@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r243705 r243709  
     12019-04-01  Antti Koivisto  <antti@apple.com>
     2
     3        Update event region when toggling pointer-events:none
     4        https://bugs.webkit.org/show_bug.cgi?id=195902
     5        <rdar://problem/48988384>
     6
     7        Reviewed by Simon Fraser.
     8
     9        Test: fast/scrolling/ios/event-region-pointer-events.html
     10
     11        Normally paint invalidation requests compositing configuration update whenever anything that would
     12        affect event region changes. However mutating 'pointer-events' property does not cause paint invalidation.
     13
     14        * rendering/RenderElement.cpp:
     15        (WebCore::RenderElement::styleWillChange):
     16
     17        Request compositing update explicitly from the containing layer.
     18
     19        * rendering/RenderLayer.cpp:
     20        (WebCore::RenderLayer::invalidateEventRegion):
     21        * rendering/RenderLayer.h:
     22
    1232019-04-01  Chris Dumez  <cdumez@apple.com>
    224
  • trunk/Source/WebCore/rendering/RenderElement.cpp

    r243163 r243709  
    731731        }
    732732
     733        if (m_style.pointerEvents() != newStyle.pointerEvents()) {
     734            // Usually the event region gets updated as a result of paint invalidation. Here we need to request an update explicitly.
     735            if (auto* layer = enclosingLayer())
     736                layer->invalidateEventRegion();
     737        }
     738
    733739        if (m_parent && (newStyle.outlineSize() < m_style.outlineSize() || shouldRepaintForStyleDifference(diff)))
    734740            repaint();
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r243701 r243709  
    66636663}
    66646664
     6665void RenderLayer::invalidateEventRegion()
     6666{
     6667    if (auto* compositingLayer = enclosingCompositingLayerForRepaint())
     6668        compositingLayer->setNeedsCompositingConfigurationUpdate();
     6669}
     6670
    66656671TextStream& operator<<(TextStream& ts, const RenderLayer& layer)
    66666672{
  • trunk/Source/WebCore/rendering/RenderLayer.h

    r243701 r243709  
    866866    WEBCORE_EXPORT bool isTransparentOrFullyClippedRespectingParentFrames() const;
    867867
     868    void invalidateEventRegion();
     869
    868870private:
    869871
Note: See TracChangeset for help on using the changeset viewer.