Module: wine Branch: master Commit: 2dbaccbe606f7a1ddec13717ccb93f28457d9355 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=2dbaccbe606f7a1ddec13717...
Author: James Hawkins truiken@gmail.com Date: Mon Aug 28 17:54:18 2006 -0700
msi: Update the PathEdit control in response to the DirectoryListUp event.
---
dlls/msi/dialog.c | 41 ++++++++++++++++++++++++++++++----------- 1 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 4ff8632..5fa599f 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -197,6 +197,17 @@ static LPWSTR msi_get_deformatted_field( return ret; }
+static LPWSTR msi_dialog_dup_property( msi_dialog *dialog, LPCWSTR property, BOOL indirect ) +{ + if (!property) + return NULL; + + if (indirect) + return msi_dup_property( dialog->package, property ); + + return strdupW( property ); +} + /* * msi_dialog_get_style * @@ -1411,6 +1422,23 @@ static UINT msi_dialog_pathedit_handler( return ERROR_SUCCESS; }
+static void msi_dialog_update_pathedit( msi_dialog *dialog ) +{ + msi_control *control; + LPWSTR prop, path; + BOOL indirect; + + control = msi_dialog_find_control( dialog, szPathEdit ); + indirect = control->attributes & msidbControlAttributesIndirect; + prop = msi_dialog_dup_property( dialog, control->property, indirect ); + + path = msi_dup_property( dialog->package, prop ); + SetWindowTextW( control->hwnd, path ); + + msi_free( path ); + msi_free( prop ); +} + static UINT msi_dialog_pathedit_control( msi_dialog *dialog, MSIRECORD *rec ) { msi_control *control; @@ -1951,17 +1979,6 @@ static UINT msi_dialog_list_box( msi_dia
/******************** Directory Combo ***************************************/
-static LPWSTR msi_dialog_dup_property( msi_dialog *dialog, LPCWSTR property, BOOL indirect ) -{ - if (!property) - return NULL; - - if (indirect) - return msi_dup_property( dialog->package, property ); - - return strdupW( property ); -} - static UINT msi_dialog_directory_combo( msi_dialog *dialog, MSIRECORD *rec ) { msi_control *control; @@ -2018,6 +2035,8 @@ UINT msi_dialog_directorylist_up( msi_di
MSI_SetPropertyW( dialog->package, prop, path );
+ msi_dialog_update_pathedit( dialog ); + msi_free( path ); msi_free( prop );