Problem with explorer desktop and PAINT messages
the3dfxdude at gmail.com
Sun Apr 9 23:37:07 CDT 2006
There is a problem with explorer managing the desktop and the sending of
PAINT messages. I've narrowed it down to the following area. In
dlls/user/message.c wait_message_reply(), if QS_PAINT are the bits we get,
and we call MsgWaitForMultipleObjectsEx, it seems to block the process
indefinitely. Should another process be replying here? I decided to
make the function return if we get QS_PAINT. Now my app doesn't hang and
paints properly. Any ideas what I should be looking for or know?
Note the call MsgWaitForMultipleObjectsEx waits for sent messages.
Changing it makes no difference.
--- wine-current/dlls/user/message.c 2006-03-30 19:37:06.000000000 -0700
+++ wine/dlls/user/message.c 2006-04-09 18:47:14.000000000 -0700
@@ -2136,7 +2136,7 @@ static void wait_message_reply( UINT fla
- if (wake_bits & QS_SMRESULT) return; /* got a result */
+ if (wake_bits & (QS_SMRESULT | QS_PAINT)) return; /* got a result */
if (wake_bits & QS_SENDMESSAGE)
/* Process the sent message immediately */
More information about the wine-devel