From 353016f92f14f97be8f971af2b9d58d8162e6b25 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Thu, 10 Nov 2011 11:38:28 +0100 Subject: [PATCH] msi: Process messages while waiting for custom actions to complete. --- dlls/msi/dialog.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 8b10215f2f2..4e908ff0d4f 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -3786,8 +3786,16 @@ void msi_dialog_check_messages( HANDLE handle ) /* in threads other than the UI thread, block */ if( uiThreadId != GetCurrentThreadId() ) { - if( handle ) - MsgWaitForMultipleObjectsEx( 1, &handle, INFINITE, 0, 0 ); + if (!handle) return; + while (MsgWaitForMultipleObjectsEx( 1, &handle, INFINITE, QS_ALLINPUT, 0 ) == WAIT_OBJECT_0 + 1) + { + MSG msg; + while (PeekMessageW( &msg, NULL, 0, 0, PM_REMOVE )) + { + TranslateMessage( &msg ); + DispatchMessageW( &msg ); + } + } return; } -- 2.11.4.GIT