From: Fabian Maurer Subject: [PATCH] msi: In dialogs show show titlebar buttons Message-Id: <20181103170528.14320-1-dark.shadow4@web.de> Date: Sat, 3 Nov 2018 18:05:28 +0100 Implemented according to my tests on windows with a bunch of msi files: -All dialogs have a close box, which acts like cancel -Main Dialogs can have a minimize box -When clicking cancel, that new dialog must never have a minimize box Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46080 Signed-off-by: Fabian Maurer --- dlls/msi/dialog.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 6184da84f1..a3797c2c04 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -3858,6 +3858,10 @@ static LRESULT WINAPI MSIDialog_WndProc( HWND hwnd, UINT msg, case WM_COMMAND: return msi_dialog_oncommand( dialog, wParam, (HWND)lParam ); + case WM_CLOSE: + /* Simulate escape press */ + return msi_dialog_oncommand(dialog, 2, NULL); + case WM_ACTIVATE: if( LOWORD(wParam) == WA_INACTIVE ) dialog->hWndFocus = GetFocus(); @@ -3903,10 +3907,13 @@ static UINT dialog_run_message_loop( msi_dialog *dialog ) return SendMessageW( hMsiHiddenWindow, WM_MSI_DIALOG_CREATE, 0, (LPARAM) dialog ); /* create the dialog window, don't show it yet */ - style = WS_OVERLAPPED; + style = WS_OVERLAPPED | WS_SYSMENU; if( dialog->attributes & msidbDialogAttributesVisible ) style |= WS_VISIBLE; + if (dialog->parent == NULL && (dialog->attributes & msidbDialogAttributesMinimize)) + style |= WS_MINIMIZEBOX; + hwnd = CreateWindowW( szMsiDialogClass, dialog->name, style, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, NULL, dialog ); -- 2.19.1