From 6320d0adef3003d3bc941856c29c6bbb41f09df8 Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Mon, 28 Aug 2006 17:54:43 -0700 Subject: [PATCH] msi: Update the DirectoryCombo control in response to the DirectoryListUp event. --- dlls/msi/dialog.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 5fa599f1dc5..0e19cf0e9aa 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -1979,6 +1979,27 @@ static UINT msi_dialog_list_box( msi_dialog *dialog, MSIRECORD *rec ) /******************** Directory Combo ***************************************/ +static void msi_dialog_update_directory_combo( msi_dialog *dialog ) +{ + msi_control *control; + LPWSTR prop, path; + BOOL indirect; + + control = msi_dialog_find_control( dialog, szDirectoryCombo ); + indirect = control->attributes & msidbControlAttributesIndirect; + prop = msi_dialog_dup_property( dialog, control->property, indirect ); + path = msi_dup_property( dialog->package, prop ); + + PathStripPathW( path ); + PathRemoveBackslashW( path ); + + SendMessageW( control->hwnd, CB_INSERTSTRING, 0, (LPARAM)path ); + SendMessageW( control->hwnd, CB_SETCURSEL, 0, 0 ); + + msi_free( path ); + msi_free( prop ); +} + static UINT msi_dialog_directory_combo( msi_dialog *dialog, MSIRECORD *rec ) { msi_control *control; @@ -2035,6 +2056,7 @@ UINT msi_dialog_directorylist_up( msi_dialog *dialog ) MSI_SetPropertyW( dialog->package, prop, path ); + msi_dialog_update_directory_combo( dialog ); msi_dialog_update_pathedit( dialog ); msi_free( path );