summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de>2004-03-18 15:46:03 +0000
committerAlexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de>2004-03-18 15:46:03 +0000
commit78cc1a5768ce7636f599fc168654f54cc3361648 (patch)
tree5faf148fd42c71fc4aaa8aaed69db2cc5026c9d5
parent26b36ab5d5adf7b982f8c4e17f35c105b0b9cd65 (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.c5
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;