Alexandre Julliard : gdi32: Make the top right corner the DC origin for RTL layouts.

Alexandre Julliard julliard at winehq.org
Thu Jul 29 12:08:38 CDT 2010


Module: wine
Branch: master
Commit: e4b76dfd88b8991da903a83a8b8cde319cd265db
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e4b76dfd88b8991da903a83a8b8cde319cd265db

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Jul 26 15:25:54 2010 +0200

gdi32: Make the top right corner the DC origin for RTL layouts.

---

 dlls/gdi32/dc.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index d122aae..3aa2480 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 );




More information about the wine-cvs mailing list