Bug 1061920 - Fix bugs in PrependLocalTransformsTo implementations where we forget to prepend to the matrix that is passed in. r=longsonr

This commit is contained in:
Jonathan Watt 2014-08-19 09:31:19 +01:00
Родитель e2bfc1e9ea
Коммит 0376ecf416
3 изменённых файлов: 3 добавлений и 3 удалений

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

@ -90,7 +90,7 @@ SVGForeignObjectElement::PrependLocalTransformsTo(const gfxMatrix &aMatrix,
GetAnimatedLengthValues(&x, &y, nullptr);
gfxMatrix toUserSpace = gfxMatrix().Translate(gfxPoint(x, y));
if (aWhich == eChildToUserSpace) {
return toUserSpace;
return toUserSpace * aMatrix;
}
NS_ABORT_IF_FALSE(aWhich == eAllTransforms, "Unknown TransformTypes");
return toUserSpace * fromUserSpace;

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

@ -974,7 +974,7 @@ SVGSVGElement::PrependLocalTransformsTo(const gfxMatrix &aMatrix,
return ThebesMatrix(GetViewBoxTransform()) * gfxMatrix().Translate(gfxPoint(x, y)) * fromUserSpace;
}
NS_ABORT_IF_FALSE(aWhich == eChildToUserSpace, "Unknown TransformTypes");
return ThebesMatrix(GetViewBoxTransform()) * gfxMatrix().Translate(gfxPoint(x, y));
return ThebesMatrix(GetViewBoxTransform()) * gfxMatrix().Translate(gfxPoint(x, y)) * aMatrix;
}
if (IsRoot()) {

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

@ -439,7 +439,7 @@ SVGUseElement::PrependLocalTransformsTo(const gfxMatrix &aMatrix,
const_cast<SVGUseElement*>(this)->GetAnimatedLengthValues(&x, &y, nullptr);
gfxMatrix toUserSpace = gfxMatrix().Translate(gfxPoint(x, y));
if (aWhich == eChildToUserSpace) {
return toUserSpace;
return toUserSpace * aMatrix;
}
NS_ABORT_IF_FALSE(aWhich == eAllTransforms, "Unknown TransformTypes");
return toUserSpace * fromUserSpace;