Module: wine Branch: master Commit: a973df332457ed97abacf52e11ff9eabf19acd30 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a973df332457ed97abacf52e11...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Jul 1 12:55:00 2013 +0200
gdi32: Fix off-by-one error in the extent of arcs when the size is even.
---
dlls/gdi32/dibdrv/graphics.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/gdi32/dibdrv/graphics.c b/dlls/gdi32/dibdrv/graphics.c index f9ed4c0..d91ef11 100644 --- a/dlls/gdi32/dibdrv/graphics.c +++ b/dlls/gdi32/dibdrv/graphics.c @@ -267,16 +267,16 @@ static int get_arc_points( PHYSDEV dev, const RECT *rect, POINT start, POINT end points[pos].y = rect->top + height/2 + points[i % count].y; break; case 1: - points[pos].x = rect->left + width/2 - points[count - 1 - i % count].x; + points[pos].x = rect->right-1 - width/2 - points[count - 1 - i % count].x; points[pos].y = rect->top + height/2 + points[count - 1 - i % count].y; break; case 2: - points[pos].x = rect->left + width/2 - points[i % count].x; - points[pos].y = rect->top + height/2 - points[i % count].y; + points[pos].x = rect->right-1 - width/2 - points[i % count].x; + points[pos].y = rect->bottom-1 - height/2 - points[i % count].y; break; case 3: points[pos].x = rect->left + width/2 + points[count - 1 - i % count].x; - points[pos].y = rect->top + height/2 - points[count - 1 - i % count].y; + points[pos].y = rect->bottom-1 - height/2 - points[count - 1 - i % count].y; break; } } @@ -289,14 +289,14 @@ static int get_arc_points( PHYSDEV dev, const RECT *rect, POINT start, POINT end { case 0: points[pos].x = rect->left + width/2 + points[i % count].x; - points[pos].y = rect->top + height/2 - points[i % count].y; + points[pos].y = rect->bottom-1 - height/2 - points[i % count].y; break; case 1: - points[pos].x = rect->left + width/2 - points[count - 1 - i % count].x; - points[pos].y = rect->top + height/2 - points[count - 1 - i % count].y; + points[pos].x = rect->right-1 - width/2 - points[count - 1 - i % count].x; + points[pos].y = rect->bottom-1 - height/2 - points[count - 1 - i % count].y; break; case 2: - points[pos].x = rect->left + width/2 - points[i % count].x; + points[pos].x = rect->right-1 - width/2 - points[i % count].x; points[pos].y = rect->top + height/2 + points[i % count].y; break; case 3: