Alexandre Julliard : gdi32: Reset the visible region in ResetDC.

Alexandre Julliard julliard at winehq.org
Tue Nov 17 09:28:21 CST 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Nov 17 15:14:11 2009 +0100

gdi32: Reset the visible region in ResetDC.

---

 dlls/gdi32/dc.c        |   12 +++++++++++-
 dlls/wineps.drv/init.c |    4 ----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index fdfc100..c4c5a13 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -859,7 +859,17 @@ HDC WINAPI ResetDCW( HDC hdc, const DEVMODEW *devmode )
 
     if ((dc = get_dc_ptr( hdc )))
     {
-        if (dc->funcs->pResetDC) ret = dc->funcs->pResetDC( dc->physDev, devmode );
+        if (dc->funcs->pResetDC)
+        {
+            ret = dc->funcs->pResetDC( dc->physDev, devmode );
+            if (ret)  /* reset the visible region */
+            {
+                dc->dirty = 0;
+                SetRectRgn( dc->hVisRgn, 0, 0, GetDeviceCaps( hdc, DESKTOPHORZRES ),
+                            GetDeviceCaps( hdc, DESKTOPVERTRES ) );
+                CLIPPING_UpdateGCRegion( dc );
+            }
+        }
         release_dc_ptr( dc );
     }
     return ret;
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c
index b923529..152ee03 100644
--- a/dlls/wineps.drv/init.c
+++ b/dlls/wineps.drv/init.c
@@ -401,14 +401,10 @@ BOOL CDECL PSDRV_DeleteDC( PSDRV_PDEVICE *physDev )
 HDC CDECL PSDRV_ResetDC( PSDRV_PDEVICE *physDev, const DEVMODEW *lpInitData )
 {
     if(lpInitData) {
-        HRGN hrgn;
         DEVMODEA *devmodeA = DEVMODEdupWtoA(PSDRV_Heap, lpInitData);
         PSDRV_MergeDevmodes(physDev->Devmode, (PSDRV_DEVMODEA *)devmodeA, physDev->pi);
         HeapFree(PSDRV_Heap, 0, devmodeA);
         PSDRV_UpdateDevCaps(physDev);
-        hrgn = CreateRectRgn(0, 0, physDev->horzRes, physDev->vertRes);
-        SelectVisRgn( physDev->hdc, hrgn );
-        DeleteObject(hrgn);
     }
     return physDev->hdc;
 }




More information about the wine-cvs mailing list