From fd8ad3d807ef4115b7f47b62e2a9f926e3fed6df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Thu, 6 Feb 2014 11:05:50 +0100 Subject: [PATCH] Correctly translate view transformation... ...from local view origin to screen origin. --- src/servers/app/drawing/Painter/Painter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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(); }