From 2c9b1e337b2e82e10909f62e8cd8c2c7a402fdd8 Mon Sep 17 00:00:00 2001 From: Alexander Gottwald Date: Sun, 8 May 2005 21:14:55 +0000 Subject: [PATCH] Only call ConfigureWindow from winRaiseWindow if the windows message dispatch loop is running. --- hw/xwin/ChangeLog | 7 +++++++ hw/xwin/winblock.c | 6 ++++++ hw/xwin/winmultiwindowwndproc.c | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/hw/xwin/ChangeLog b/hw/xwin/ChangeLog index 20977edb0..4f161e516 100644 --- a/hw/xwin/ChangeLog +++ b/hw/xwin/ChangeLog @@ -1,3 +1,10 @@ +2005-05-08 Alexander Gottwald + + * winmultiwindowwndproc.c: + * winblock.c: + Only call ConfigureWindow from winRaiseWindow if the windows + message dispatch loop is running. + 2005-05-02 Alexander Gottwald * winerror.c: diff --git a/hw/xwin/winblock.c b/hw/xwin/winblock.c index 1d21faf46..ec2d16eeb 100644 --- a/hw/xwin/winblock.c +++ b/hw/xwin/winblock.c @@ -41,6 +41,8 @@ extern HWND g_hDlgExit; extern HWND g_hDlgAbout; +Bool winInBlockHandler = FALSE; + /* See Porting Layer Definition - p. 6 */ void winBlockHandler (int nScreen, @@ -87,6 +89,9 @@ winBlockHandler (int nScreen, winBlockHandler_ProcessMessages: #endif + + + winInBlockHandler = TRUE; /* Process all messages on our queue */ while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) { @@ -100,4 +105,5 @@ winBlockHandler_ProcessMessages: DispatchMessage (&msg); } } + winInBlockHandler = FALSE; } diff --git a/hw/xwin/winmultiwindowwndproc.c b/hw/xwin/winmultiwindowwndproc.c index 93ddcd4b3..56e51565c 100755 --- a/hw/xwin/winmultiwindowwndproc.c +++ b/hw/xwin/winmultiwindowwndproc.c @@ -266,10 +266,11 @@ ValidateSizing (HWND hwnd, WindowPtr pWin, } extern Bool winInDestroyWindowsWindow; +extern Bool winInBlockHandler; static Bool winInRaiseWindow = FALSE; static void winRaiseWindow(WindowPtr pWin) { - if (!winInDestroyWindowsWindow && !winInRaiseWindow) + if (winInBlockHandler && !winInDestroyWindowsWindow && !winInRaiseWindow) { BOOL oldstate = winInRaiseWindow; winInRaiseWindow = TRUE;