Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/user32/tests/win.c | 1 - server/queue.c | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index f128d15419d..b460416e89d 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -936,7 +936,6 @@ static void test_thread_exit_destroy(void) ret = IsWindow( child2 ); ok( !ret, "IsWindow returned %u\n", ret ); ret = IsWindow( child3 ); - todo_wine ok( !ret, "IsWindow returned %u\n", ret ); ret = DestroyWindow( child2 ); ok( !ret, "DestroyWindow returned %u\n", ret ); diff --git a/server/queue.c b/server/queue.c index fbbb230e6dc..5ef23996317 100644 --- a/server/queue.c +++ b/server/queue.c @@ -2573,6 +2573,10 @@ DECL_HANDLER(get_message)
reply->active_hooks = get_active_hooks();
+ /* first check for internal messages */ + if (queue && get_queued_message( queue, SEND_MESSAGE, 0, 0x80000000, 0xffffffff, PM_REMOVE, reply )) + return; + if (get_win && get_win != 1 && get_win != -1 && !get_user_object( get_win, USER_WINDOW )) { set_win32_error( ERROR_INVALID_WINDOW_HANDLE ); @@ -2584,7 +2588,7 @@ DECL_HANDLER(get_message) if (!filter) filter = QS_ALLINPUT;
/* first check for sent messages */ - if (get_queued_message( queue, SEND_MESSAGE, 0, 0, 0xffffffff, PM_REMOVE, reply )) + if (get_queued_message( queue, SEND_MESSAGE, 0, 0, 0x7fffffff, PM_REMOVE, reply )) return;
/* clear changed bits so we can wait on them if we don't find a message */