Great! I always believed those hardcoded const values are not the real solution! =)
Git commit 7be561f4b4c5bd900133c0d82c2b8c6d51122cbf by Sven Langkamp.
Committed on 19/06/2011 at 14:15.
Pushed by langkamp into branch 'master'.
fix artefacts on qpainter canvas
BUG:275829
M +9 -6 krita/ui/tool/kis_tool_freehand.cc
http://commits.kde.org/calligra/7be561f4b4c5bd900133c0d82c2b8c6d51122cbf
diff --git a/krita/ui/tool/kis_tool_freehand.cc b/krita/ui/tool/kis_tool_freehand.cc
index 71a4f43..0d0e429 100644
--- a/krita/ui/tool/kis_tool_freehand.cc
+++ b/krita/ui/tool/kis_tool_freehand.cc
@@ -677,12 +677,15 @@ void KisToolFreehand::updateOutlineRect()
canvas()->updateCanvas(m_oldOutlineRect);
}
-#ifdef __GNUC__
-#warning "Remove adjusted() call -- it smells hacky"
-#else
-#pragma WARNING( "Remove adjusted() call -- it smells hacky" )
-#endif
- m_oldOutlineRect = outlineDocRect.adjusted(-2,-2,2,2);
+ // This adjusted call is needed as we paint with a 3 pixel wide brush and the pen is outside the bounds of the path
+ // Pen uses view coordinates so we have to zoom the document value to match 2 pixel in view coordiates
+ // See BUG 275829
+ qreal zoomX;
+ qreal zoomY;
+ canvas()->viewConverter()->zoom(&zoomX, &zoomY);
+ qreal xoffset = 2.0/zoomX;
+ qreal yoffset = 2.0/zoomY;
+ m_oldOutlineRect = outlineDocRect.adjusted(-xoffset,-yoffset,xoffset,yoffset);
canvas()->updateCanvas(m_oldOutlineRect);
}