http://bugs.winehq.org/show_bug.cgi?id=11
------- Additional Comments From felix.nawothnig@t-online.de 2005-14-05 03:55 ------- Investigated it a bit:
When StrokePath() is called MWT_IDENTITY is set since the coordinates passed to PolyLine() in StrokePath() (or LineTo(), etc. before - it was already broken before my patch) are already device coordinates, converted by PATH_LineTo(), PATH_MoveTo(), etc. since they all call LPtoDP(), but the pen width isn't ofcourse.
A quick fix is to remove all the mapping mode changes in PATH_StrokePath() and add
DPtoLP(dc->hSelf, pPath->pPoints, pPath->numEntriesUsed);
before the loop - I think that's rather hackish since I wonder if the coordinates in pPath->pPoints should be DP anyway...