From 6c723a2340e0ede1d78e3fcaf3ca15bef7ef2e12 Mon Sep 17 00:00:00 2001 From: Chris Lord Date: Thu, 9 Feb 2012 16:42:14 +0100 Subject: [PATCH] Bug 722325 - Revert bug 720987 for transformed frames. r=roc The fix checked in for bug 720987 caused a major rendering regression with native fennec. Revert it for transformed frames until the correct fix is found. --- layout/base/nsCSSFrameConstructor.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp index 5a3ea5d1243..64c01fb0b0f 100644 --- a/layout/base/nsCSSFrameConstructor.cpp +++ b/layout/base/nsCSSFrameConstructor.cpp @@ -7991,7 +7991,17 @@ nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList& aChangeList) } if ((hint & nsChangeHint_UpdateOverflow) && !didReflow) { while (frame) { - frame->UpdateOverflow(); + nsOverflowAreas* pre = static_cast + (frame->Properties().Get(frame->PreTransformOverflowAreasProperty())); + if (pre) { + // FinishAndStoreOverflow will change the overflow areas passed in, + // so make a copy. + nsOverflowAreas overflowAreas = *pre; + frame->FinishAndStoreOverflow(overflowAreas, frame->GetSize()); + } else { + frame->UpdateOverflow(); + } + nsIFrame* next = nsLayoutUtils::GetNextContinuationOrSpecialSibling(frame); // Update the ancestors' overflow after we have updated the overflow