Module: wine Branch: master Commit: 353016f92f14f97be8f971af2b9d58d8162e6b25 URL: http://source.winehq.org/git/wine.git/?a=commit;h=353016f92f14f97be8f971af2b...
Author: Hans Leidekker hans@codeweavers.com Date: Thu Nov 10 11:38:28 2011 +0100
msi: Process messages while waiting for custom actions to complete.
---
dlls/msi/dialog.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 8b10215..4e908ff 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; }