diff options
author | Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> | 2004-03-18 15:46:03 +0000 |
---|---|---|
committer | Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> | 2004-03-18 15:46:03 +0000 |
commit | 78cc1a5768ce7636f599fc168654f54cc3361648 (patch) | |
tree | 5faf148fd42c71fc4aaa8aaed69db2cc5026c9d5 | |
parent | 26b36ab5d5adf7b982f8c4e17f35c105b0b9cd65 (diff) |
Fix for the Root Window 100% CPU bug use lParam in
winRedrawAllProcShadowGDI as indicator which window initiated the call
since EnumerateThreadWindows is called from WM_PAINT handler too and
invalidates the fresh painted window right after painting it.
-rw-r--r-- | hw/xwin/winshadgdi.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/hw/xwin/winshadgdi.c b/hw/xwin/winshadgdi.c index 195110bd0..d6fa89474 100644 --- a/hw/xwin/winshadgdi.c +++ b/hw/xwin/winshadgdi.c @@ -228,6 +228,8 @@ winQueryRGBBitsAndMasks (ScreenPtr pScreen) BOOL CALLBACK winRedrawAllProcShadowGDI (HWND hwnd, LPARAM lParam) { + if (hwnd == (HWND)lParam) + return TRUE; InvalidateRect (hwnd, NULL, FALSE); UpdateWindow (hwnd); return TRUE; @@ -839,7 +841,8 @@ winBltExposedRegionsShadowGDI (ScreenPtr pScreen) #ifdef XWIN_MULTIWINDOW /* Redraw all windows */ if (pScreenInfo->fMultiWindow) - EnumThreadWindows(g_dwCurrentThreadID, winRedrawAllProcShadowGDI, 0); + EnumThreadWindows(g_dwCurrentThreadID, winRedrawAllProcShadowGDI, + (LPARAM)pScreenPriv->hwndScreen); #endif return TRUE; |