https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b4624f32f37c0855d66946...
commit b4624f32f37c0855d6694672e2fe9719b312ac36 Author: James Tabor james.tabor@reactos.org AuthorDate: Thu Mar 14 12:00:53 2019 -0500 Commit: James Tabor james.tabor@reactos.org CommitDate: Thu Mar 14 12:00:53 2019 -0500
[GDI32] Fix issue after a Flush
While flushing the DC handle goes down with the flush. This was not a regression, just untested old code. --- win32ss/gdi/gdi32/include/gdi32p.h | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/win32ss/gdi/gdi32/include/gdi32p.h b/win32ss/gdi/gdi32/include/gdi32p.h index f0b4cb46d9..03ce3afcf8 100644 --- a/win32ss/gdi/gdi32/include/gdi32p.h +++ b/win32ss/gdi/gdi32/include/gdi32p.h @@ -409,6 +409,12 @@ GdiAllocBatchCommand( /* Call win32k, the kernel will call NtGdiFlushUserBatch to flush the current batch */ NtGdiFlush(); + + // If Flushed, lose the hDC for this batch job! See CORE-15839. + if (hdc) + { + if (!pTeb->GdiTebBatch.HDC) pTeb->GdiTebBatch.HDC = hdc; + } }
/* Get the head of the entry */