diff --git a/reactos/subsystems/win32/win32k/include/dc.h b/reactos/subsystems/win32/win32k/include/dc.h index 44c46dd9153..f54cd96cf4c 100644 --- a/reactos/subsystems/win32/win32k/include/dc.h +++ b/reactos/subsystems/win32/win32k/include/dc.h @@ -156,7 +156,7 @@ BOOL INTERNAL_CALL DC_Cleanup(PVOID ObjectBody); HDC FASTCALL DC_GetNextDC (PDC pDC); VOID FASTCALL DC_SetNextDC (PDC pDC, HDC hNextDC); VOID FASTCALL DC_SetOwnership(HDC DC, PEPROCESS Owner); -VOID FASTCALL IntGdiCopyFromSaveState(PDC, PDC); +VOID FASTCALL IntGdiCopyFromSaveState(PDC, PDC, HDC); VOID FASTCALL IntGdiCopyToSaveState(PDC, PDC); VOID FASTCALL DC_UpdateXforms(PDC dc); diff --git a/reactos/subsystems/win32/win32k/ntuser/windc.c b/reactos/subsystems/win32/win32k/ntuser/windc.c index 77f57cd2a0d..fa7da45dcab 100644 --- a/reactos/subsystems/win32/win32k/ntuser/windc.c +++ b/reactos/subsystems/win32/win32k/ntuser/windc.c @@ -252,7 +252,7 @@ DceReleaseDC(DCE* dce, BOOL EndPaint) IntGdiSetHookFlags(dce->hDC, DCHF_VALIDATEVISRGN); PDC dc = DC_LockDc ( dce->hDC ); - IntGdiCopyFromSaveState(dc, defaultDCstate); // Was SetDCState. + IntGdiCopyFromSaveState(dc, defaultDCstate, dce->hDC ); // Was SetDCState. dce->DCXFlags &= ~DCX_DCEBUSY; if (dce->DCXFlags & DCX_DCEDIRTY) diff --git a/reactos/subsystems/win32/win32k/objects/dc.c b/reactos/subsystems/win32/win32k/objects/dc.c index a547faaff51..bfe1e8d32b8 100644 --- a/reactos/subsystems/win32/win32k/objects/dc.c +++ b/reactos/subsystems/win32/win32k/objects/dc.c @@ -1365,10 +1365,8 @@ IntGdiCopyToSaveState(PDC dc, PDC newdc) VOID FASTCALL -IntGdiCopyFromSaveState(PDC dc, PDC dcs) -{ - HDC hDC = dc->hSelf; - +IntGdiCopyFromSaveState(PDC dc, PDC dcs, HDC hDC) +{ dc->w.flags = dcs->w.flags & ~DC_SAVED; dc->w.hFirstBitmap = dcs->w.hFirstBitmap; @@ -1512,7 +1510,7 @@ IntGdiSetDCState ( HDC hDC, HDC hDCSave ) { if ( dcs->w.flags & DC_SAVED ) { - IntGdiCopyFromSaveState( dc, dcs); + IntGdiCopyFromSaveState( dc, dcs, dc->hSelf); } else {