From 2cca18dd6ecb65ff65e4eb9e882838eed4477777 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 3 Aug 2010 22:56:04 +0200 Subject: [PATCH] winex11: Break positioning of graphics in mirrored contexts to be broken the same way as Windows. --- dlls/winex11.drv/graphics.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dlls/winex11.drv/graphics.c b/dlls/winex11.drv/graphics.c index 4c2d2668df..8420f01cf1 100644 --- a/dlls/winex11.drv/graphics.c +++ b/dlls/winex11.drv/graphics.c @@ -82,13 +82,14 @@ static RECT get_device_rect( HDC hdc, int left, int top, int right, int bottom ) rect.top = top; rect.right = right; rect.bottom = bottom; - LPtoDP( hdc, (POINT *)&rect, 2 ); if (GetLayout( hdc ) & LAYOUT_RTL) { - int tmp = rect.left; - rect.left = rect.right + 1; - rect.right = tmp + 1; + /* shift the rectangle so that the right border is included after mirroring */ + /* it would be more correct to do this after LPtoDP but that's not what Windows does */ + rect.left--; + rect.right--; } + LPtoDP( hdc, (POINT *)&rect, 2 ); if (rect.left > rect.right) { int tmp = rect.left;