From 94ffc49e0284170472d1af82ca924f1e667bdfc8 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 5 Jan 2012 15:29:22 +0100 Subject: [PATCH] gdi32: Draw rectangles in the order specified by the current arc direction. --- dlls/gdi32/dibdrv/graphics.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/dlls/gdi32/dibdrv/graphics.c b/dlls/gdi32/dibdrv/graphics.c index 1ba157b1e04..bb14666a5e7 100644 --- a/dlls/gdi32/dibdrv/graphics.c +++ b/dlls/gdi32/dibdrv/graphics.c @@ -674,11 +674,22 @@ BOOL dibdrv_Rectangle( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) rect.bottom--; reset_dash_origin(pdev); - /* 4 pts going anti-clockwise starting from top-right */ - pts[0].x = pts[3].x = rect.right; - pts[0].y = pts[1].y = rect.top; - pts[1].x = pts[2].x = rect.left; - pts[2].y = pts[3].y = rect.bottom; + if (GetArcDirection( dev->hdc ) == AD_CLOCKWISE) + { + /* 4 pts going clockwise starting from bottom-right */ + pts[0].x = pts[3].x = rect.right; + pts[0].y = pts[1].y = rect.bottom; + pts[1].x = pts[2].x = rect.left; + pts[2].y = pts[3].y = rect.top; + } + else + { + /* 4 pts going anti-clockwise starting from top-right */ + pts[0].x = pts[3].x = rect.right; + pts[0].y = pts[1].y = rect.top; + pts[1].x = pts[2].x = rect.left; + pts[2].y = pts[3].y = rect.bottom; + } pdev->pen_lines(pdev, 4, pts, TRUE, outline);