[PATCH 2/2] msi: Refreh controls after spawned dialog is closed
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Fri Jan 22 03:49:30 CST 2016
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
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;
}
--
1.9.1
More information about the wine-patches
mailing list