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..1c85ee00761 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -139,6 +139,7 @@ typedef struct
static DWORD uiThreadId; static HWND hMsiHiddenWindow; +static HWND handle_main_dialog = 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 == handle_main_dialog) + handle_main_dialog = 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 ); + handle_main_dialog, NULL, NULL, dialog ); if( !hwnd ) { ERR("Failed to create dialog %s\n", debugstr_w( dialog->name )); return ERROR_FUNCTION_FAILED; }
+ if (!handle_main_dialog) + handle_main_dialog = hwnd; + ShowWindow( hwnd, SW_SHOW ); /* UpdateWindow( hwnd ); - and causes the transparent static controls not to paint */
-- 2.32.0
On Mon, 2021-08-09 at 19:39 +0200, Fabian Maurer wrote:
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..1c85ee00761 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -139,6 +139,7 @@ typedef struct
static DWORD uiThreadId; static HWND hMsiHiddenWindow; +static HWND handle_main_dialog = 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 == handle_main_dialog)
handle_main_dialog = 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 );
handle_main_dialog, NULL, NULL, dialog );
This doesn't seem to match Windows behavior.
On Donnerstag, 26. August 2021 11:25:49 CEST you wrote:
On Mon, 2021-08-09 at 19:39 +0200, Fabian Maurer wrote:
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..1c85ee00761 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -139,6 +139,7 @@ typedef struct
static DWORD uiThreadId; static HWND hMsiHiddenWindow; +static HWND handle_main_dialog = 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 == handle_main_dialog)
case WM_NOTIFY:handle_main_dialog = NULL; dialog->hwnd = NULL; return 0;
@@ -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 );
handle_main_dialog, NULL, NULL, dialog );
This doesn't seem to match Windows behavior.
In what way?
Regards, Fabian Maurer
On Thu, 2021-08-26 at 20:26 +0200, Fabian Maurer wrote:
On Donnerstag, 26. August 2021 11:25:49 CEST you wrote:
On Mon, 2021-08-09 at 19:39 +0200, Fabian Maurer wrote:
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..1c85ee00761 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -139,6 +139,7 @@ typedef struct
static DWORD uiThreadId; static HWND hMsiHiddenWindow; +static HWND handle_main_dialog = 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 == handle_main_dialog)
handle_main_dialog = 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 );
handle_main_dialog, NULL, NULL, dialog );
This doesn't seem to match Windows behavior.
In what way?
I don't see a parent set on these windows.
I don't see a parent set on these windows.
Huh, thanks. I'll look into that... Feel free to reject for now.
Regards, Fabian Maurer