Alistair Leslie-Hughes : msi: Refreh controls after spawned dialog is closed.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jan 22 08:30:20 CST 2016


Module: wine
Branch: master
Commit: 434f0f7cb18cc5068be0d48c0c6c981f36c82bd9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=434f0f7cb18cc5068be0d48c0c6c981f36c82bd9

Author: Alistair Leslie-Hughes <leslie_alistair at 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 at hotmail.com>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
 }
 




More information about the wine-cvs mailing list