- First try bug fix for #2698.

svn path=/trunk/; revision=29246
This commit is contained in:
James Tabor 2007-09-27 15:54:51 +00:00
parent 4562d06142
commit d4c51f18f7
3 changed files with 5 additions and 7 deletions

View file

@ -156,7 +156,7 @@ BOOL INTERNAL_CALL DC_Cleanup(PVOID ObjectBody);
HDC FASTCALL DC_GetNextDC (PDC pDC); HDC FASTCALL DC_GetNextDC (PDC pDC);
VOID FASTCALL DC_SetNextDC (PDC pDC, HDC hNextDC); VOID FASTCALL DC_SetNextDC (PDC pDC, HDC hNextDC);
VOID FASTCALL DC_SetOwnership(HDC DC, PEPROCESS Owner); 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 IntGdiCopyToSaveState(PDC, PDC);
VOID FASTCALL DC_UpdateXforms(PDC dc); VOID FASTCALL DC_UpdateXforms(PDC dc);

View file

@ -252,7 +252,7 @@ DceReleaseDC(DCE* dce, BOOL EndPaint)
IntGdiSetHookFlags(dce->hDC, DCHF_VALIDATEVISRGN); IntGdiSetHookFlags(dce->hDC, DCHF_VALIDATEVISRGN);
PDC dc = DC_LockDc ( dce->hDC ); PDC dc = DC_LockDc ( dce->hDC );
IntGdiCopyFromSaveState(dc, defaultDCstate); // Was SetDCState. IntGdiCopyFromSaveState(dc, defaultDCstate, dce->hDC ); // Was SetDCState.
dce->DCXFlags &= ~DCX_DCEBUSY; dce->DCXFlags &= ~DCX_DCEBUSY;
if (dce->DCXFlags & DCX_DCEDIRTY) if (dce->DCXFlags & DCX_DCEDIRTY)

View file

@ -1365,10 +1365,8 @@ IntGdiCopyToSaveState(PDC dc, PDC newdc)
VOID VOID
FASTCALL FASTCALL
IntGdiCopyFromSaveState(PDC dc, PDC dcs) IntGdiCopyFromSaveState(PDC dc, PDC dcs, HDC hDC)
{ {
HDC hDC = dc->hSelf;
dc->w.flags = dcs->w.flags & ~DC_SAVED; dc->w.flags = dcs->w.flags & ~DC_SAVED;
dc->w.hFirstBitmap = dcs->w.hFirstBitmap; dc->w.hFirstBitmap = dcs->w.hFirstBitmap;
@ -1512,7 +1510,7 @@ IntGdiSetDCState ( HDC hDC, HDC hDCSave )
{ {
if ( dcs->w.flags & DC_SAVED ) if ( dcs->w.flags & DC_SAVED )
{ {
IntGdiCopyFromSaveState( dc, dcs); IntGdiCopyFromSaveState( dc, dcs, dc->hSelf);
} }
else else
{ {