mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 460551 - overrideCTM is no longer necessary. r+sr=roc
This commit is contained in:
parent
fa24c1568e
commit
d58d86bd7a
@ -51,8 +51,8 @@ class nsIDOMSVGMatrix;
|
||||
class nsSVGRenderState;
|
||||
|
||||
#define NS_ISVGCHILDFRAME_IID \
|
||||
{ 0x8b80b2a0, 0x2e1f, 0x4775, \
|
||||
{ 0xab, 0x47, 0xbe, 0xeb, 0x4b, 0x81, 0x63, 0x6d } }
|
||||
{ 0x91253119, 0x4fe4, 0x4628, \
|
||||
{ 0xaf, 0x25, 0x4e, 0x4b, 0x43, 0x5f, 0x66, 0xf2 } }
|
||||
|
||||
class nsISVGChildFrame : public nsISupports {
|
||||
public:
|
||||
@ -100,12 +100,6 @@ public:
|
||||
NS_IMETHOD SetMatrixPropagation(PRBool aPropagate)=0;
|
||||
virtual PRBool GetMatrixPropagation()=0;
|
||||
|
||||
// Set the current transformation matrix to a particular matrix.
|
||||
// Value is only used if matrix propagation is prevented
|
||||
// (SetMatrixPropagation()). nsnull aCTM means identity transform.
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM)=0;
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM()=0;
|
||||
|
||||
// XXX move this function into interface nsISVGLocatableMetrics
|
||||
NS_IMETHOD GetBBox(nsIDOMSVGRect **_retval)=0; // bbox in local coords
|
||||
|
||||
|
@ -155,12 +155,7 @@ nsSVGAFrame::GetCanvasTM()
|
||||
{
|
||||
if (!GetMatrixPropagation()) {
|
||||
nsIDOMSVGMatrix *retval;
|
||||
if (mOverrideCTM) {
|
||||
retval = mOverrideCTM;
|
||||
NS_ADDREF(retval);
|
||||
} else {
|
||||
NS_NewSVGMatrix(&retval);
|
||||
}
|
||||
NS_NewSVGMatrix(&retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -112,8 +112,6 @@ public:
|
||||
NS_IMETHOD NotifyRedrawUnsuspended();
|
||||
NS_IMETHOD SetMatrixPropagation(PRBool aPropagate);
|
||||
virtual PRBool GetMatrixPropagation();
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM) { return NS_ERROR_FAILURE; }
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM() { return nsnull; }
|
||||
NS_IMETHOD GetBBox(nsIDOMSVGRect **_retval);
|
||||
NS_IMETHOD_(PRBool) IsDisplayContainer() { return PR_TRUE; }
|
||||
NS_IMETHOD_(PRBool) HasValidCoveredRect() { return PR_FALSE; }
|
||||
|
@ -196,7 +196,6 @@ nsAutoFilterInstance::~nsAutoFilterInstance()
|
||||
if (!mTarget)
|
||||
return;
|
||||
|
||||
mTarget->SetOverrideCTM(nsnull);
|
||||
mTarget->SetMatrixPropagation(PR_TRUE);
|
||||
mTarget->NotifySVGChanged(nsISVGChildFrame::SUPPRESS_INVALIDATION |
|
||||
nsISVGChildFrame::TRANSFORM_CHANGED);
|
||||
|
@ -481,21 +481,6 @@ nsSVGForeignObjectFrame::GetMatrixPropagation()
|
||||
return (GetStateBits() & NS_STATE_SVG_PROPAGATE_TRANSFORM) != 0;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGForeignObjectFrame::SetOverrideCTM(nsIDOMSVGMatrix *aCTM)
|
||||
{
|
||||
mOverrideCTM = aCTM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
already_AddRefed<nsIDOMSVGMatrix>
|
||||
nsSVGForeignObjectFrame::GetOverrideCTM()
|
||||
{
|
||||
nsIDOMSVGMatrix *matrix = mOverrideCTM.get();
|
||||
NS_IF_ADDREF(matrix);
|
||||
return matrix;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGForeignObjectFrame::GetBBox(nsIDOMSVGRect **_retval)
|
||||
{
|
||||
@ -543,12 +528,7 @@ nsSVGForeignObjectFrame::GetCanvasTM()
|
||||
{
|
||||
if (!GetMatrixPropagation()) {
|
||||
nsIDOMSVGMatrix *retval;
|
||||
if (mOverrideCTM) {
|
||||
retval = mOverrideCTM;
|
||||
NS_ADDREF(retval);
|
||||
} else {
|
||||
NS_NewSVGMatrix(&retval);
|
||||
}
|
||||
NS_NewSVGMatrix(&retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -130,8 +130,6 @@ public:
|
||||
NS_IMETHOD NotifyRedrawUnsuspended();
|
||||
NS_IMETHOD SetMatrixPropagation(PRBool aPropagate);
|
||||
virtual PRBool GetMatrixPropagation();
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM);
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM();
|
||||
NS_IMETHOD GetBBox(nsIDOMSVGRect **_retval);
|
||||
NS_IMETHOD_(PRBool) IsDisplayContainer() { return PR_TRUE; }
|
||||
NS_IMETHOD_(PRBool) HasValidCoveredRect() { return PR_FALSE; }
|
||||
@ -163,7 +161,6 @@ protected:
|
||||
PRBool IsDisabled() const { return mRect.width <= 0 || mRect.height <= 0; }
|
||||
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mCanvasTM;
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mOverrideCTM;
|
||||
// Damage area due to in-this-doc invalidation
|
||||
nsRegion mSameDocDirtyRegion;
|
||||
// Damage area due to cross-doc invalidation
|
||||
|
@ -80,32 +80,12 @@ nsSVGGFrame::NotifySVGChanged(PRUint32 aFlags)
|
||||
nsSVGGFrameBase::NotifySVGChanged(aFlags);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGGFrame::SetOverrideCTM(nsIDOMSVGMatrix *aCTM)
|
||||
{
|
||||
mOverrideCTM = aCTM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
already_AddRefed<nsIDOMSVGMatrix>
|
||||
nsSVGGFrame::GetOverrideCTM()
|
||||
{
|
||||
nsIDOMSVGMatrix *matrix = mOverrideCTM.get();
|
||||
NS_IF_ADDREF(matrix);
|
||||
return matrix;
|
||||
}
|
||||
|
||||
already_AddRefed<nsIDOMSVGMatrix>
|
||||
nsSVGGFrame::GetCanvasTM()
|
||||
{
|
||||
if (!GetMatrixPropagation()) {
|
||||
nsIDOMSVGMatrix *retval;
|
||||
if (mOverrideCTM) {
|
||||
retval = mOverrideCTM;
|
||||
NS_ADDREF(retval);
|
||||
} else {
|
||||
NS_NewSVGMatrix(&retval);
|
||||
}
|
||||
NS_NewSVGMatrix(&retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -73,14 +73,11 @@ public:
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
virtual void NotifySVGChanged(PRUint32 aFlags);
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM);
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM();
|
||||
|
||||
// nsSVGContainerFrame methods:
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetCanvasTM();
|
||||
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mCanvasTM;
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mOverrideCTM;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -127,8 +127,6 @@ public:
|
||||
NS_IMETHOD NotifyRedrawUnsuspended();
|
||||
NS_IMETHOD SetMatrixPropagation(PRBool aPropagate);
|
||||
virtual PRBool GetMatrixPropagation();
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM) { return NS_ERROR_FAILURE; }
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM() { return nsnull; }
|
||||
NS_IMETHOD_(PRBool) IsDisplayContainer() { return PR_FALSE; }
|
||||
NS_IMETHOD_(PRBool) HasValidCoveredRect() { return PR_TRUE; }
|
||||
|
||||
|
@ -166,26 +166,9 @@ nsSVGGradientFrame::GetGradientTransform(nsSVGGeometryFrame *aSource)
|
||||
"Unknown gradientUnits type");
|
||||
// objectBoundingBox is the default anyway
|
||||
|
||||
nsISVGChildFrame *frame = nsnull;
|
||||
if (aSource) {
|
||||
if (callerType == nsGkAtoms::svgGlyphFrame)
|
||||
CallQueryInterface(aSource->GetParent(), &frame);
|
||||
else
|
||||
CallQueryInterface(aSource, &frame);
|
||||
}
|
||||
nsCOMPtr<nsIDOMSVGRect> rect;
|
||||
if (frame) {
|
||||
nsCOMPtr<nsIDOMSVGMatrix> matrix = frame->GetOverrideCTM();
|
||||
frame->SetMatrixPropagation(PR_FALSE);
|
||||
frame->SetOverrideCTM(nsnull);
|
||||
frame->NotifySVGChanged(nsISVGChildFrame::SUPPRESS_INVALIDATION |
|
||||
nsISVGChildFrame::TRANSFORM_CHANGED);
|
||||
frame->GetBBox(getter_AddRefs(rect));
|
||||
frame->SetMatrixPropagation(PR_TRUE);
|
||||
frame->SetOverrideCTM(matrix);
|
||||
frame->NotifySVGChanged(nsISVGChildFrame::SUPPRESS_INVALIDATION |
|
||||
nsISVGChildFrame::TRANSFORM_CHANGED);
|
||||
}
|
||||
nsIFrame *frame = (callerType == nsGkAtoms::svgGlyphFrame) ?
|
||||
aSource->GetParent() : aSource;
|
||||
nsCOMPtr<nsIDOMSVGRect> rect = nsSVGUtils::GetBBox(frame);
|
||||
if (rect) {
|
||||
float x, y, width, height;
|
||||
rect->GetX(&x);
|
||||
|
@ -85,8 +85,6 @@ public:
|
||||
// nsISVGChildFrame interface:
|
||||
NS_IMETHOD PaintSVG(nsSVGRenderState *aContext, nsIntRect *aDirtyRect);
|
||||
virtual void NotifySVGChanged(PRUint32 aFlags);
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM);
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM();
|
||||
NS_IMETHOD_(nsIFrame*) GetFrameForPoint(const nsPoint &aPoint);
|
||||
|
||||
// nsSVGContainerFrame methods:
|
||||
@ -109,7 +107,6 @@ public:
|
||||
protected:
|
||||
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mCanvasTM;
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mOverrideCTM;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
@ -225,21 +222,6 @@ nsSVGInnerSVGFrame::NotifySVGChanged(PRUint32 aFlags)
|
||||
nsSVGInnerSVGFrameBase::NotifySVGChanged(aFlags);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGInnerSVGFrame::SetOverrideCTM(nsIDOMSVGMatrix *aCTM)
|
||||
{
|
||||
mOverrideCTM = aCTM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
already_AddRefed<nsIDOMSVGMatrix>
|
||||
nsSVGInnerSVGFrame::GetOverrideCTM()
|
||||
{
|
||||
nsIDOMSVGMatrix *matrix = mOverrideCTM.get();
|
||||
NS_IF_ADDREF(matrix);
|
||||
return matrix;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(nsIFrame*)
|
||||
nsSVGInnerSVGFrame::GetFrameForPoint(const nsPoint &aPoint)
|
||||
{
|
||||
@ -329,12 +311,7 @@ nsSVGInnerSVGFrame::GetCanvasTM()
|
||||
{
|
||||
if (!GetMatrixPropagation()) {
|
||||
nsIDOMSVGMatrix *retval;
|
||||
if (mOverrideCTM) {
|
||||
retval = mOverrideCTM;
|
||||
NS_ADDREF(retval);
|
||||
} else {
|
||||
NS_NewSVGMatrix(&retval);
|
||||
}
|
||||
NS_NewSVGMatrix(&retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -337,21 +337,6 @@ nsSVGPathGeometryFrame::GetMatrixPropagation()
|
||||
return (GetStateBits() & NS_STATE_SVG_PROPAGATE_TRANSFORM) != 0;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGPathGeometryFrame::SetOverrideCTM(nsIDOMSVGMatrix *aCTM)
|
||||
{
|
||||
mOverrideCTM = aCTM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
already_AddRefed<nsIDOMSVGMatrix>
|
||||
nsSVGPathGeometryFrame::GetOverrideCTM()
|
||||
{
|
||||
nsIDOMSVGMatrix *matrix = mOverrideCTM.get();
|
||||
NS_IF_ADDREF(matrix);
|
||||
return matrix;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGPathGeometryFrame::GetBBox(nsIDOMSVGRect **_retval)
|
||||
{
|
||||
@ -373,11 +358,6 @@ nsSVGPathGeometryFrame::GetCanvasTM(nsIDOMSVGMatrix * *aCTM)
|
||||
*aCTM = nsnull;
|
||||
|
||||
if (!GetMatrixPropagation()) {
|
||||
if (mOverrideCTM) {
|
||||
*aCTM = mOverrideCTM;
|
||||
NS_ADDREF(*aCTM);
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_NewSVGMatrix(aCTM);
|
||||
}
|
||||
|
||||
|
@ -111,8 +111,6 @@ protected:
|
||||
NS_IMETHOD NotifyRedrawUnsuspended();
|
||||
NS_IMETHOD SetMatrixPropagation(PRBool aPropagate);
|
||||
virtual PRBool GetMatrixPropagation();
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM);
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM();
|
||||
NS_IMETHOD GetBBox(nsIDOMSVGRect **_retval);
|
||||
NS_IMETHOD_(PRBool) IsDisplayContainer() { return PR_FALSE; }
|
||||
NS_IMETHOD_(PRBool) HasValidCoveredRect() { return PR_TRUE; }
|
||||
@ -154,8 +152,6 @@ private:
|
||||
* @param aFrame should be the first continuation
|
||||
*/
|
||||
static MarkerProperties GetMarkerProperties(nsSVGPathGeometryFrame *aFrame);
|
||||
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mOverrideCTM;
|
||||
};
|
||||
|
||||
#endif // __NS_SVGPATHGEOMETRYFRAME_H__
|
||||
|
@ -99,24 +99,6 @@ nsSVGTSpanFrame::AttributeChanged(PRInt32 aNameSpaceID,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// nsISVGChildFrame methods
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGTSpanFrame::SetOverrideCTM(nsIDOMSVGMatrix *aCTM)
|
||||
{
|
||||
mOverrideCTM = aCTM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
already_AddRefed<nsIDOMSVGMatrix>
|
||||
nsSVGTSpanFrame::GetOverrideCTM()
|
||||
{
|
||||
nsIDOMSVGMatrix *matrix = mOverrideCTM.get();
|
||||
NS_IF_ADDREF(matrix);
|
||||
return matrix;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// nsSVGContainerFrame methods:
|
||||
|
||||
@ -125,12 +107,7 @@ nsSVGTSpanFrame::GetCanvasTM()
|
||||
{
|
||||
if (!GetMatrixPropagation()) {
|
||||
nsIDOMSVGMatrix *retval;
|
||||
if (mOverrideCTM) {
|
||||
retval = mOverrideCTM;
|
||||
NS_ADDREF(retval);
|
||||
} else {
|
||||
NS_NewSVGMatrix(&retval);
|
||||
}
|
||||
NS_NewSVGMatrix(&retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -79,10 +79,6 @@ public:
|
||||
return MakeFrameName(NS_LITERAL_STRING("SVGTSpan"), aResult);
|
||||
}
|
||||
#endif
|
||||
// nsISVGChildFrame interface:
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM);
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM();
|
||||
|
||||
// nsSVGContainerFrame methods:
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetCanvasTM();
|
||||
|
||||
@ -94,9 +90,6 @@ public:
|
||||
NS_IMETHOD_(nsISVGGlyphFragmentLeaf *) GetFirstGlyphFragment();
|
||||
NS_IMETHOD_(nsISVGGlyphFragmentLeaf *) GetNextGlyphFragment();
|
||||
NS_IMETHOD_(void) SetWhitespaceHandling(PRUint8 aWhitespaceHandling);
|
||||
|
||||
protected:
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mOverrideCTM;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -212,21 +212,6 @@ nsSVGTextFrame::NotifyRedrawUnsuspended()
|
||||
return nsSVGTextFrameBase::NotifyRedrawUnsuspended();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGTextFrame::SetOverrideCTM(nsIDOMSVGMatrix *aCTM)
|
||||
{
|
||||
mOverrideCTM = aCTM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
already_AddRefed<nsIDOMSVGMatrix>
|
||||
nsSVGTextFrame::GetOverrideCTM()
|
||||
{
|
||||
nsIDOMSVGMatrix *matrix = mOverrideCTM.get();
|
||||
NS_IF_ADDREF(matrix);
|
||||
return matrix;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsSVGTextFrame::PaintSVG(nsSVGRenderState* aContext, nsIntRect *aDirtyRect)
|
||||
{
|
||||
@ -277,12 +262,7 @@ nsSVGTextFrame::GetCanvasTM()
|
||||
{
|
||||
if (!GetMatrixPropagation()) {
|
||||
nsIDOMSVGMatrix *retval;
|
||||
if (mOverrideCTM) {
|
||||
retval = mOverrideCTM;
|
||||
NS_ADDREF(retval);
|
||||
} else {
|
||||
NS_NewSVGMatrix(&retval);
|
||||
}
|
||||
NS_NewSVGMatrix(&retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -74,8 +74,6 @@ public:
|
||||
#endif
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
NS_IMETHOD SetOverrideCTM(nsIDOMSVGMatrix *aCTM);
|
||||
virtual already_AddRefed<nsIDOMSVGMatrix> GetOverrideCTM();
|
||||
virtual void NotifySVGChanged(PRUint32 aFlags);
|
||||
NS_IMETHOD NotifyRedrawSuspended();
|
||||
NS_IMETHOD NotifyRedrawUnsuspended();
|
||||
@ -112,7 +110,6 @@ private:
|
||||
void UpdateGlyphPositioning(PRBool aForceGlobalTransform);
|
||||
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mCanvasTM;
|
||||
nsCOMPtr<nsIDOMSVGMatrix> mOverrideCTM;
|
||||
|
||||
enum UpdateState { unsuspended, suspended };
|
||||
UpdateState mMetricsState;
|
||||
|
@ -155,12 +155,7 @@ nsSVGUseFrame::GetCanvasTM()
|
||||
{
|
||||
if (!GetMatrixPropagation()) {
|
||||
nsIDOMSVGMatrix *retval;
|
||||
if (mOverrideCTM) {
|
||||
retval = mOverrideCTM;
|
||||
NS_ADDREF(retval);
|
||||
} else {
|
||||
NS_NewSVGMatrix(&retval);
|
||||
}
|
||||
NS_NewSVGMatrix(&retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user