RESOLVED FIXED 195902
Update event region when toggling pointer-events:none
https://bugs.webkit.org/show_bug.cgi?id=195902
Summary Update event region when toggling pointer-events:none
Antti Koivisto
Reported 2019-03-18 12:14:31 PDT
Simon in bug 195378: In fact, this might break now with something like: <div class="composited"><div id="child"></div> and dynamic toggle of "pointer-events" style on child. That won't issue a repaint (hopefully) and won't update event regions.
Attachments
patch (6.95 KB, patch)
2019-04-01 10:41 PDT, Antti Koivisto
no flags
patch (8.06 KB, patch)
2019-04-01 11:00 PDT, Antti Koivisto
simon.fraser: review+
patch (8.05 KB, patch)
2019-04-01 11:07 PDT, Antti Koivisto
no flags
Radar WebKit Bug Importer
Comment 1 2019-03-18 12:15:35 PDT
Antti Koivisto
Comment 2 2019-04-01 10:41:08 PDT
Antti Koivisto
Comment 3 2019-04-01 11:00:42 PDT
Simon Fraser (smfr)
Comment 4 2019-04-01 11:01:14 PDT
Comment on attachment 366403 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=366403&action=review > Source/WebCore/ChangeLog:12 > + 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. Maybe RenderStyle::diff should return an enum value that indicates that event regions are dirty? > Source/WebCore/rendering/RenderElement.cpp:737 > + if (layer && (layer = layer->enclosingCompositingLayerForRepaint())) > + layer->setNeedsCompositingConfigurationUpdate(); It's non-obvious that setNeedsCompositingConfigurationUpdate is what you call to get event regions to be recomputed. We should clean that up in future.
Simon Fraser (smfr)
Comment 5 2019-04-01 11:01:50 PDT
Comment on attachment 366406 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=366406&action=review > Source/WebCore/rendering/RenderLayer.cpp:6669 > +void RenderLayer::invalidateEventRegion() > +{ > + if (auto* compositingLayer = enclosingCompositingLayerForRepaint()) > + compositingLayer->setNeedsCompositingConfigurationUpdate(); > +} Heh ok.
Antti Koivisto
Comment 6 2019-04-01 11:07:01 PDT
Antti Koivisto
Comment 7 2019-04-01 12:46:55 PDT
> Maybe RenderStyle::diff should return an enum value that indicates that > event regions are dirty? I considered it, but it wasn't obvious how it would be better than just doing this.
Antti Koivisto
Comment 8 2019-04-01 12:47:55 PDT
Maybe that's a good approach if this turns of to be more than a single property thing.
WebKit Commit Bot
Comment 9 2019-04-01 12:53:06 PDT
Comment on attachment 366407 [details] patch Clearing flags on attachment: 366407 Committed r243709: <https://trac.webkit.org/changeset/243709>
WebKit Commit Bot
Comment 10 2019-04-01 12:53:08 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.