user: Remove internal messages from the message queue before handling them.

This commit is contained in:
Michael Kaufmann 2006-01-30 18:15:52 +01:00 committed by Alexandre Julliard
parent cb8fe1dd41
commit fd71ef1bfa
1 changed files with 7 additions and 2 deletions

View File

@ -2728,9 +2728,14 @@ BOOL WINAPI PeekMessageW( MSG *msg_out, HWND hwnd, UINT first, UINT last, UINT f
}
if (msg.message & 0x80000000)
{
handle_internal_message( msg.hwnd, msg.message, msg.wParam, msg.lParam );
if (!(flags & PM_REMOVE)) /* have to remove it explicitly */
if (!(flags & PM_REMOVE))
{
/* Have to remove the message explicitly.
Do this before handling it, because the message handler may
call PeekMessage again */
peek_message( &msg, msg.hwnd, msg.message, msg.message, GET_MSG_REMOVE );
}
handle_internal_message( msg.hwnd, msg.message, msg.wParam, msg.lParam );
}
else break;
}