Module: wine Branch: master Commit: 434f0f7cb18cc5068be0d48c0c6c981f36c82bd9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=434f0f7cb18cc5068be0d48c0c...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Fri Jan 22 20:49:30 2016 +1100
msi: Refreh controls after spawned dialog is closed.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msi/dialog.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 9b61937..245bfdc 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -556,6 +556,17 @@ static void msi_dialog_update_controls( msi_dialog *dialog, LPCWSTR property ) } }
+static void msi_dialog_update_all_controls( msi_dialog *dialog ) +{ + msi_control *control; + + LIST_FOR_EACH_ENTRY( control, &dialog->controls, msi_control, entry ) + { + if ( control->property && control->update ) + control->update( dialog, control ); + } +} + static void msi_dialog_set_property( MSIPACKAGE *package, LPCWSTR property, LPCWSTR value ) { UINT r = msi_set_property( package->db, property, value, -1 ); @@ -4389,7 +4400,11 @@ static UINT event_spawn_dialog( msi_dialog *dialog, const WCHAR *argument ) { /* don't destroy a modeless dialogs that might be our parent */ event_do_dialog( dialog->package, argument, dialog, FALSE ); - if (dialog->package->CurrentInstallState != ERROR_SUCCESS) msi_dialog_end_dialog( dialog ); + if (dialog->package->CurrentInstallState != ERROR_SUCCESS) + msi_dialog_end_dialog( dialog ); + else + msi_dialog_update_all_controls(dialog); + return ERROR_SUCCESS; }