diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp index 67ae256038fae1d61824d58f5e544f65505a1ed5..b6e70376f1d9230df9beb01216092969e9322c8f 100644 --- a/layout/generic/nsIFrame.cpp +++ b/layout/generic/nsIFrame.cpp @@ -11973,6 +11973,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const { gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms( uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel)); + const StyleTransformOrigin& origin = uiReset->mWindowTransformOrigin; + Point transformOrigin = nsStyleTransformMatrix::Convert2DPosition( + origin.horizontal, origin.vertical, refBox, appUnitsPerDevPixel); + matrix.ChangeBasis(Point3D(transformOrigin.x, transformOrigin.y, 0)); + gfx::Matrix result2d; if (!matrix.CanDraw2D(&result2d)) { // FIXME: It would be preferable to reject non-2D transforms at parse time.