From: Elizabeth Figura zfigura@codeweavers.com
get_arc_points() uses the GM_ADVANCED convention, where a MxN rect is one with M = (right - left + 1), N = (top - bottom + 1). --- dlls/win32u/dibdrv/graphics.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/win32u/dibdrv/graphics.c b/dlls/win32u/dibdrv/graphics.c index fb92f137b9b..36fe965c4b6 100644 --- a/dlls/win32u/dibdrv/graphics.c +++ b/dlls/win32u/dibdrv/graphics.c @@ -1623,11 +1623,11 @@ BOOL dibdrv_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom, SetRect( &rect, left, top, right, bottom ); order_rect( &rect );
- SetRect( &arc_rect, rect.left, rect.top, rect.left + ellipse_width, rect.top + ellipse_height ); + SetRect( &arc_rect, rect.left, rect.top, rect.left + ellipse_width - 1, rect.top + ellipse_height - 1 ); count = get_arc_points( dc, AD_CLOCKWISE, &arc_rect, arc_rect.left, (arc_rect.top + arc_rect.bottom) / 2, (arc_rect.left + arc_rect.right) / 2, arc_rect.top, top_points );
- SetRect( &arc_rect, rect.right - ellipse_width, rect.top, rect.right, rect.top + ellipse_height ); + SetRect( &arc_rect, rect.right - ellipse_width + 1, rect.top, rect.right, rect.top + ellipse_height - 1 ); count += get_arc_points( dc, AD_CLOCKWISE, &arc_rect, (arc_rect.left + arc_rect.right + 1) / 2, arc_rect.top, arc_rect.right, (arc_rect.top + arc_rect.bottom) / 2, top_points + count );