diff --git a/src/servers/app/drawing/Painter/Painter.cpp b/src/servers/app/drawing/Painter/Painter.cpp index f64dd99767..eb38756e5e 100644 --- a/src/servers/app/drawing/Painter/Painter.cpp +++ b/src/servers/app/drawing/Painter/Painter.cpp @@ -348,9 +348,10 @@ Painter::SetTransform(BAffineTransform transform, int32 xOffset, int32 yOffset) { fIdentityTransform = transform.IsIdentity(); if (!fIdentityTransform) { - fTransform = agg::trans_affine(transform.sx, transform.shy, - transform.shx, transform.sy, transform.tx/* + xOffset*/, - transform.ty/* + yOffset*/); + fTransform = agg::trans_affine_translation(-xOffset, -yOffset); + fTransform *= agg::trans_affine(transform.sx, transform.shy, + transform.shx, transform.sy, transform.tx, transform.ty); + fTransform *= agg::trans_affine_translation(xOffset, yOffset); } else { fTransform.reset(); }