Bug 345488 - transform from path not applied to textPath. r=longson, sr=roc

This commit is contained in:
tor%cs.brown.edu 2006-08-04 15:15:07 +00:00
Родитель 07735904ee
Коммит 433fa6c610
2 изменённых файлов: 29 добавлений и 0 удалений

Просмотреть файл

@ -251,3 +251,29 @@ nsSVGTextPathFrame::AttributeChanged(PRInt32 aNameSpaceID,
return NS_OK;
}
//----------------------------------------------------------------------
// nsSVGContainerFrame methods:
already_AddRefed<nsIDOMSVGMatrix>
nsSVGTextPathFrame::GetCanvasTM()
{
nsCOMPtr<nsIDOMSVGMatrix> transform = nsSVGTextPathFrameBase::GetCanvasTM();
nsIFrame *path = GetPathFrame();
if (path) {
nsSVGGraphicElement *element =
NS_STATIC_CAST(nsSVGGraphicElement*, path->GetContent());
nsCOMPtr<nsIDOMSVGMatrix> localTM = element->GetLocalTransformMatrix();
if (localTM) {
nsCOMPtr<nsIDOMSVGMatrix> tmp;
transform->Multiply(localTM, getter_AddRefs(tmp));
transform = tmp;
}
}
nsIDOMSVGMatrix* retval = nsnull;
transform.swap(retval);
return retval;
}

Просмотреть файл

@ -87,6 +87,9 @@ public:
nsSVGFlattenedPath *GetFlattenedPath();
nsIFrame *GetPathFrame();
// nsSVGContainerFrame methods:
virtual already_AddRefed<nsIDOMSVGMatrix> GetCanvasTM();
// nsISupports interface:
NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr);