Alexandre Julliard : user32: Don' t process other messages when recursing in peek_message for an internal message .

Alexandre Julliard julliard at winehq.org
Thu Nov 13 08:51:24 CST 2008


Module: wine
Branch: master
Commit: fe9f688774eb7d53df71282115c839eebe66d8a5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fe9f688774eb7d53df71282115c839eebe66d8a5

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Nov 12 19:56:36 2008 +0100

user32: Don't process other messages when recursing in peek_message for an internal message.

---

 dlls/user32/message.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index e049d57..5d3adb8 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -2163,8 +2163,12 @@ static BOOL peek_message( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags
             if (info.msg.message & 0x80000000)  /* internal message */
             {
                 if (flags & PM_REMOVE)
+                {
                     handle_internal_message( info.msg.hwnd, info.msg.message,
                                              info.msg.wParam, info.msg.lParam );
+                    /* if this is a nested call return right away */
+                    if (first == info.msg.message && last == info.msg.message) return FALSE;
+                }
                 else
                     peek_message( msg, info.msg.hwnd, info.msg.message,
                                   info.msg.message, flags | PM_REMOVE, changed_mask );




More information about the wine-cvs mailing list