From c85390fc6fdfe6bef1e61c859fd4b92bcd975ab7 Mon Sep 17 00:00:00 2001 From: "tor%cs.brown.edu" Date: Wed, 22 Mar 2006 23:17:26 +0000 Subject: [PATCH] Bug 331291 - clip setup from svg image was persistent. r=scooter git-svn-id: svn://10.0.0.236/trunk@192818 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/svg/base/src/nsSVGImageFrame.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mozilla/layout/svg/base/src/nsSVGImageFrame.cpp b/mozilla/layout/svg/base/src/nsSVGImageFrame.cpp index 45d61484b0f..cdc80391144 100644 --- a/mozilla/layout/svg/base/src/nsSVGImageFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGImageFrame.cpp @@ -319,9 +319,6 @@ nsSVGImageFrame::PaintSVG(nsISVGRendererCanvas* canvas) mWidth->GetValue(&width); mHeight->GetValue(&height); - if (GetStyleDisplay()->IsScrollableOverflow()) - canvas->SetClipRect(ctm, x, y, width, height); - PRUint32 nativeWidth, nativeHeight; mSurface->GetWidth(&nativeWidth); mSurface->GetHeight(&nativeHeight); @@ -338,9 +335,17 @@ nsSVGImageFrame::PaintSVG(nsISVGRendererCanvas* canvas) ctm->Translate(x, y, getter_AddRefs(ctmXY)); ctmXY->Multiply(trans, getter_AddRefs(fini)); + if (GetStyleDisplay()->IsScrollableOverflow()) { + canvas->PushClip(); + canvas->SetClipRect(ctm, x, y, width, height); + } + canvas->CompositeSurfaceMatrix(mSurface, fini, mStyleContext->GetStyleDisplay()->mOpacity); + + if (GetStyleDisplay()->IsScrollableOverflow()) + canvas->PopClip(); } return NS_OK;