author | Wes Johnston <wjohnston@mozilla.com> |
Tue, 17 Apr 2012 08:08:29 -0400 | |
changeset 91852 | 372d32e0ea61376eb4c20443a2e3794345617195 |
parent 91851 | fdc8a3e8c956d48b0e7ed5812aa1122d464da46c |
child 91853 | 67818a1a19c39a6b041d4e3b9150e38b491bf1c1 |
push id | 22480 |
push user | emorley@mozilla.com |
push date | Wed, 18 Apr 2012 00:48:48 +0000 |
treeherder | mozilla-central@93dfd98900ad [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | roc |
bugs | 745936 |
milestone | 14.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -2190,18 +2190,23 @@ nsGfxScrollFrameInner::BuildDisplayList( // Not all our descendants will be clipped by overflow clipping, but all // the ones that aren't clipped will be out of flow frames that have already // had dirty rects saved for them by their parent frames calling // MarkOutOfFlowChildrenForDisplayList, so it's safe to restrict our // dirty rect here. dirtyRect.IntersectRect(aDirtyRect, mScrollPort); // Override the dirty rectangle if the displayport has been set. + nsRect displayPort; bool usingDisplayport = - nsLayoutUtils::GetDisplayPort(mOuter->GetContent(), &dirtyRect); + nsLayoutUtils::GetDisplayPort(mOuter->GetContent(), &displayPort) && + !aBuilder->IsForEventDelivery(); + if (usingDisplayport) { + dirtyRect = displayPort; + } nsDisplayListCollection set; rv = mOuter->BuildDisplayListForChild(aBuilder, mScrolledFrame, dirtyRect, set); NS_ENSURE_SUCCESS(rv, rv); // Since making new layers is expensive, only use nsDisplayScrollLayer // if the area is scrollable and there's a displayport (or we're the content // process).