Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51576 Signed-off-by: Fabian Maurer dark.shadow4@web.de --- dlls/msi/dialog.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 703f9d43957..144d7308b3f 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -139,6 +139,7 @@ typedef struct
static DWORD uiThreadId; static HWND hMsiHiddenWindow; +static HANDLE hPrevious = NULL;
static LPWSTR msi_get_window_text( HWND hwnd ) { @@ -3881,6 +3882,8 @@ static LRESULT WINAPI MSIDialog_WndProc( HWND hwnd, UINT msg, return SendMessageW( (HWND) lParam, WM_CTLCOLORSTATIC, wParam, lParam );
case WM_DESTROY: + if (dialog->hwnd == hPrevious) + hPrevious = NULL; dialog->hwnd = NULL; return 0; case WM_NOTIFY: @@ -3919,13 +3922,16 @@ static UINT dialog_run_message_loop( msi_dialog *dialog )
hwnd = CreateWindowW( L"MsiDialogCloseClass", dialog->name, style, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - NULL, NULL, NULL, dialog ); + hPrevious, NULL, NULL, dialog ); if( !hwnd ) { ERR("Failed to create dialog %s\n", debugstr_w( dialog->name )); return ERROR_FUNCTION_FAILED; }
+ if (!hPrevious) + hPrevious = hwnd; + ShowWindow( hwnd, SW_SHOW ); /* UpdateWindow( hwnd ); - and causes the transparent static controls not to paint */
-- 2.32.0
August 8, 2021 5:12 PM, "Fabian Maurer" dark.shadow4@web.de wrote:
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 703f9d43957..144d7308b3f 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -139,6 +139,7 @@ typedef struct
static DWORD uiThreadId; static HWND hMsiHiddenWindow; +static HANDLE hPrevious = NULL;
This is a fairly minor issue, but I don't think using generic 'HANDLE' as the type instead of specific 'HWND' here is a good idea. Also, Hungarian notation is discouraged in Wine now. You don't have to change the other variables; just please don't use Hungarian on new variables that you add.
Chip
Hello Chip,
thanks for your reply. I sent an updated version.
Regards, Fabian Maurer