diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp index 794d02a892eaa180cb2aa4fdc46428e37aee2e1e..40daffbb32a2ec43ae2364bcadadbdb9813a3186 100644 --- a/layout/generic/nsIFrame.cpp +++ b/layout/generic/nsIFrame.cpp @@ -11918,6 +11918,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.