App hang on creating modal dialog
Jeff Miller
jmiller-wine at tanner.com
Tue Dec 9 20:48:12 CST 2008
Dan Kegel wrote:
> Jeff wrote:
>
>> I'm trying to solve my bug 16346
>> http://bugs.winehq.org/show_bug.cgi?id=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
handled.
Is there a good reason to prevent nested X11 events from being handled?
Jeff
From: Jeff Miller <jmiller-wine at tanner.com>
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)
{
--
1.6.0.3
More information about the wine-devel
mailing list