diff options
author | win7-7 <win7-7@users.noreply.github.com> | 2019-05-24 20:00:07 +0300 |
---|---|---|
committer | Moonchild <mcwerewolf@wolfbeast.com> | 2019-05-24 17:00:07 +0000 |
commit | 622ad88c5d0ed8fc301d37b884857123eb17cc56 (patch) | |
tree | 446433e1a16caa254e619856b2f418a9f30f3428 /layout | |
parent | 315ffd563c18442e655e815bf250acce84b9b232 (diff) | |
download | UXP-622ad88c5d0ed8fc301d37b884857123eb17cc56.tar UXP-622ad88c5d0ed8fc301d37b884857123eb17cc56.tar.gz UXP-622ad88c5d0ed8fc301d37b884857123eb17cc56.tar.lz UXP-622ad88c5d0ed8fc301d37b884857123eb17cc56.tar.xz UXP-622ad88c5d0ed8fc301d37b884857123eb17cc56.zip |
Lots of time spent maintaining nsDisplayLayerEventRegions (#1116)
* Simplify the dispatch-to-content region
Simplify the dispatch-to-content region in nsDisplayLayerEventRegions::AddFrame() and AddInactiveScrollPort() if it starts to get large.
* tabs to spaces
Diffstat (limited to 'layout')
-rw-r--r-- | layout/base/nsDisplayList.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp index c830891a5..a55ec1e39 100644 --- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -3808,12 +3808,14 @@ nsDisplayLayerEventRegions::AddFrame(nsDisplayListBuilder* aBuilder, // region on scrollbar frames that won't be placed in their own layer. See // bug 1213324 for details. mDispatchToContentHitRegion.Or(mDispatchToContentHitRegion, borderBox); + mDispatchToContentHitRegion.SimplifyOutward(8); } else if (aFrame->GetType() == nsGkAtoms::objectFrame) { // If the frame is a plugin frame and wants to handle wheel events as // default action, we should add the frame to dispatch-to-content region. nsPluginFrame* pluginFrame = do_QueryFrame(aFrame); if (pluginFrame && pluginFrame->WantsToHandleWheelEventAsDefaultAction()) { mDispatchToContentHitRegion.Or(mDispatchToContentHitRegion, borderBox); + mDispatchToContentHitRegion.SimplifyOutward(8); } } @@ -3850,6 +3852,7 @@ nsDisplayLayerEventRegions::AddFrame(nsDisplayListBuilder* aBuilder, } if (alreadyHadRegions) { mDispatchToContentHitRegion.OrWith(CombinedTouchActionRegion()); + mDispatchToContentHitRegion.SimplifyOutward(8); } } } @@ -3859,6 +3862,7 @@ nsDisplayLayerEventRegions::AddInactiveScrollPort(const nsRect& aRect) { mHitRegion.Or(mHitRegion, aRect); mDispatchToContentHitRegion.Or(mDispatchToContentHitRegion, aRect); + mDispatchToContentHitRegion.SimplifyOutward(8); } bool |