diff --git a/layout/svg/base/src/nsSVGFilterFrame.cpp b/layout/svg/base/src/nsSVGFilterFrame.cpp index 031111bda27..d85fac41f65 100644 --- a/layout/svg/base/src/nsSVGFilterFrame.cpp +++ b/layout/svg/base/src/nsSVGFilterFrame.cpp @@ -462,16 +462,20 @@ nsSVGFilterFrame::GetInvalidationRegion(nsIFrame *aTarget, CallQueryInterface(aTarget, &svg); - svg->SetMatrixPropagation(PR_FALSE); - svg->NotifyCanvasTMChanged(PR_TRUE); - PRUint16 type; mFilterUnits->GetAnimVal(&type); float x, y, width, height; nsCOMPtr bbox; + + svg->SetMatrixPropagation(PR_FALSE); + svg->NotifyCanvasTMChanged(PR_TRUE); + svg->GetBBox(getter_AddRefs(bbox)); + svg->SetMatrixPropagation(PR_TRUE); + svg->NotifyCanvasTMChanged(PR_TRUE); + nsSVGFilterElement *filter = NS_STATIC_CAST(nsSVGFilterElement*, mContent); nsSVGLength2 *tmpX, *tmpY, *tmpWidth, *tmpHeight; tmpX = &filter->mLengthAttributes[nsSVGFilterElement::X]; @@ -496,9 +500,6 @@ nsSVGFilterFrame::GetInvalidationRegion(nsIFrame *aTarget, height = nsSVGUtils::UserSpace(targetContent, tmpHeight); } - svg->SetMatrixPropagation(PR_TRUE); - svg->NotifyCanvasTMChanged(PR_TRUE); - #ifdef DEBUG_tor fprintf(stderr, "invalidate box: %f,%f %fx%f\n", x, y, width, height); #endif diff --git a/layout/svg/base/src/nsSVGGenericContainerFrame.cpp b/layout/svg/base/src/nsSVGGenericContainerFrame.cpp index 43d8d7c49be..6fa8e0263e3 100644 --- a/layout/svg/base/src/nsSVGGenericContainerFrame.cpp +++ b/layout/svg/base/src/nsSVGGenericContainerFrame.cpp @@ -268,8 +268,7 @@ nsSVGGenericContainerFrame::NotifyRedrawUnsuspended() NS_IMETHODIMP nsSVGGenericContainerFrame::GetBBox(nsIDOMSVGRect **_retval) { - *_retval = nsnull; - return NS_ERROR_FAILURE; + return nsSVGUtils::GetBBox(&mFrames, _retval); } //----------------------------------------------------------------------