App hang on creating modal dialog

Jeff Miller jmiller-wine at
Tue Dec 9 20:48:12 CST 2008

Dan Kegel wrote:
> Jeff wrote:
>> I'm trying to solve my bug 16346
>> ...
>> I'm trying to figure out where in the wine code I should look for a
>> system that might be eating all of the messages intended for my
>> application.  Can anyone point me in the right direction?
> I dunno, but that test case is nice and small.  Can you
> turn it into a wine conformance test?  That will make it
> even more likely somebody helps find a solution...
> - Dan
I'm not sure how to create a non-interactive unit test case for this, 
since it involves interplay with the window manager and results in a 
hang.  If someone could point out a similar test case I could pattern 
mine on, that would be great.

On the solution end of things, I have discovered that the following 
patch resolves the problem.  The issue is that the MessageBox is created 
from within a WM_ACTIVATEAPP message which initiated from the X11 
driver.  The X11 driver is coded to prevent nested events from being 

Is there a good reason to prevent nested X11 events from being handled?


From: Jeff Miller <jmiller-wine at>
Date: Tue, 9 Dec 2008 18:33:20 -0800
Subject: Fix bug #16346 by allowing nested X11 events to be handled.

 dlls/winex11.drv/event.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 5f7ebef..83a4a82 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -403,8 +403,6 @@ DWORD X11DRV_MsgWaitForMultipleObjectsEx( DWORD 
count, const HANDLE *handles,
                                          timeout, flags & MWMO_ALERTABLE );

-    if (data->current_event) mask = 0;  /* don't process nested events */
     if (process_events( data->display, filter_event, mask )) ret = 
count - 1;
     else if (count || timeout)

More information about the wine-devel mailing list