Author: jgardou
Date: Thu Jul 12 17:00:39 2012
New Revision: 56875
URL: http://svn.reactos.org/svn/reactos?rev=56875&view=rev
Log:
[WIN32K]
* When cleaning DC, also "clean" the associated brushes
Fixes some asserts hit with Baldur's Gate launcher
Modified:
trunk/reactos/win32ss/gdi/ntgdi/dcstate.c
Modified: trunk/reactos/win32ss/gdi/ntgdi/dcstate.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/dcstate.…
==============================================================================
--- trunk/reactos/win32ss/gdi/ntgdi/dcstate.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/ntgdi/dcstate.c [iso-8859-1] Thu Jul 12 17:00:39 2012
@@ -73,7 +73,17 @@
dc = DC_LockDc(hDC);
if (!dc) return FALSE;
// Clean the DC
- if (defaultDCstate) DC_vCopyState(defaultDCstate, dc, FALSE);
+ if (defaultDCstate)
+ {
+ DC_vCopyState(defaultDCstate, dc, FALSE);
+ /* Update the brushes now, because they reference some objects (the DC palette)
+ * Which belong to the current process, and this DC might be used for another process
+ * after being cleaned up (for GetDC(0) for instance) */
+ DC_vUpdateFillBrush(dc);
+ DC_vUpdateBackgroundBrush(dc);
+ DC_vUpdateLineBrush(dc);
+ DC_vUpdateTextBrush(dc);
+ }
DC_UnlockDc(dc);