Module: wine Branch: master Commit: b0760fc2e91d22cd262601a4080d6f8c66e4e32d URL: http://source.winehq.org/git/wine.git/?a=commit;h=b0760fc2e91d22cd262601a408...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Mar 3 13:19:13 2010 +0100
server: Set the idle event when PeekMessage is called with -1 as window filter.
---
dlls/user32/tests/msg.c | 42 ++++++++++++++++++++++++++++++++++++++++++ server/queue.c | 1 + 2 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 492de62..714e57f 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -12080,6 +12080,13 @@ static const struct { 0, 0, FALSE }, { 0, WAIT_TIMEOUT, FALSE }, { 0, 0, FALSE }, + { 0, 0, FALSE }, +/* 15 */ { 0, 0, FALSE }, + { WAIT_TIMEOUT, 0, FALSE }, + { WAIT_TIMEOUT, 0, FALSE }, + { WAIT_TIMEOUT, 0, FALSE }, + { WAIT_TIMEOUT, 0, FALSE }, +/* 20 */ { WAIT_TIMEOUT, 0, FALSE }, };
static DWORD CALLBACK do_wait_idle_child_thread( void *arg ) @@ -12205,6 +12212,41 @@ static void do_wait_idle_child( int arg ) WaitForSingleObject( thread, 10000 ); CloseHandle( thread ); break; + case 14: + SetEvent( start_event ); + Sleep( 200 ); + PeekMessage( &msg, HWND_TOPMOST, 0, 0, PM_NOREMOVE ); + break; + case 15: + SetEvent( start_event ); + Sleep( 200 ); + PeekMessage( &msg, HWND_BROADCAST, 0, 0, PM_NOREMOVE ); + break; + case 16: + SetEvent( start_event ); + Sleep( 200 ); + PeekMessage( &msg, HWND_BOTTOM, 0, 0, PM_NOREMOVE ); + break; + case 17: + SetEvent( start_event ); + Sleep( 200 ); + PeekMessage( &msg, (HWND)0xdeadbeef, 0, 0, PM_NOREMOVE ); + break; + case 18: + SetEvent( start_event ); + Sleep( 200 ); + PeekMessage( &msg, HWND_NOTOPMOST, 0, 0, PM_NOREMOVE ); + break; + case 19: + SetEvent( start_event ); + Sleep( 200 ); + PeekMessage( &msg, HWND_MESSAGE, 0, 0, PM_NOREMOVE ); + break; + case 20: + SetEvent( start_event ); + Sleep( 200 ); + PeekMessage( &msg, GetDesktopWindow(), 0, 0, PM_NOREMOVE ); + break; } WaitForSingleObject( end_event, 2000 ); CloseHandle( start_event ); diff --git a/server/queue.c b/server/queue.c index 938d7cf..b2bc603 100644 --- a/server/queue.c +++ b/server/queue.c @@ -1819,6 +1819,7 @@ DECL_HANDLER(get_message) return; }
+ if (get_win == -1 && current->process->idle_event) set_event( current->process->idle_event ); queue->wake_mask = req->wake_mask; queue->changed_mask = req->changed_mask; set_error( STATUS_PENDING ); /* FIXME */