From e4b76dfd88b8991da903a83a8b8cde319cd265db Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 26 Jul 2010 15:25:54 +0200 Subject: [PATCH] gdi32: Make the top right corner the DC origin for RTL layouts. --- dlls/gdi32/dc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index d122aae4fc0..3aa2480c861 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -296,6 +296,7 @@ static void construct_window_to_viewport(DC *dc, XFORM *xform) xform->eM22 = scaleY; xform->eDx = (double)dc->vportOrgX - scaleX * (double)dc->wndOrgX; xform->eDy = (double)dc->vportOrgY - scaleY * (double)dc->wndOrgY; + if (dc->layout & LAYOUT_RTL) xform->eDx += dc->vis_rect.right - dc->vis_rect.left - 1; } /*********************************************************************** @@ -550,6 +551,7 @@ BOOL restore_dc_state( HDC hdc, INT level ) if (dc->hMetaRgn) DeleteObject( dc->hMetaRgn ); dc->hMetaRgn = 0; } + DC_UpdateXforms( dc ); CLIPPING_UpdateGCRegion( dc ); SelectObject( hdc, dcs->hBitmap );