Sorry guys! Would have anyone know that Abiword calls GdiFlush every second.

svn path=/trunk/; revision=30211
This commit is contained in:
James Tabor 2007-11-06 02:33:38 +00:00
parent 6492c8da81
commit 06ccf45dd1

View file

@ -65,8 +65,6 @@ VOID
APIENTRY APIENTRY
NtGdiFlush(VOID) NtGdiFlush(VOID)
{ {
// Hack! FIXME!
NtYieldExecution(); // Force thread to sunset and run the flush.
UNIMPLEMENTED; UNIMPLEMENTED;
} }
@ -83,15 +81,15 @@ NtGdiFlushUserBatch(VOID)
{ {
PTEB pTeb = NtCurrentTeb(); PTEB pTeb = NtCurrentTeb();
ULONG GdiBatchCount = pTeb->GdiBatchCount; ULONG GdiBatchCount = pTeb->GdiBatchCount;
if( (GdiBatchCount > 0) && (GdiBatchCount <= GDIBATCHBUFSIZE)) if( (GdiBatchCount > 0) && (GdiBatchCount <= (GDIBATCHBUFSIZE/4)))
{ {
HDC hDC = (HDC) pTeb->GdiTebBatch.HDC; HDC hDC = (HDC) pTeb->GdiTebBatch.HDC;
// //
// If hDC is zero and the buffer fills up with delete objects we need to run // If hDC is zero and the buffer fills up with delete objects we need to run
// anyway. So, hard code to the system batch limit. // anyway. So, hard code to the system batch limit.
// //
if ((hDC) || (GdiBatchCount >= GDI_BATCH_LIMIT)) if ((hDC) || ((!hDC) && (GdiBatchCount >= GDI_BATCH_LIMIT)))
{ {
PULONG pHdr = &pTeb->GdiTebBatch.Buffer[0]; PULONG pHdr = &pTeb->GdiTebBatch.Buffer[0];
// No need to init anything, just go! // No need to init anything, just go!