mirror of https://github.com/encounter/SDL.git
windows: msgboxes should specify a parent HWND if possible (thanks, Ismael!).
This lets them be properly modal. Fixes Bugzilla #3650.
This commit is contained in:
parent
90ed3daa3e
commit
3fbd21ce40
|
@ -354,6 +354,7 @@ WIN_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
|
|||
wchar_t* wmessage;
|
||||
TEXTMETRIC TM;
|
||||
|
||||
HWND ParentWindow = NULL;
|
||||
|
||||
const int ButtonWidth = 88;
|
||||
const int ButtonHeight = 26;
|
||||
|
@ -469,8 +470,13 @@ WIN_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
|
|||
x += ButtonWidth + ButtonMargin;
|
||||
}
|
||||
|
||||
/* FIXME: If we have a parent window, get the Instance and HWND for them */
|
||||
which = DialogBoxIndirect(NULL, (DLGTEMPLATE*)dialog->lpDialog, NULL, (DLGPROC)MessageBoxDialogProc);
|
||||
/* If we have a parent window, get the Instance and HWND for them
|
||||
* so that our little dialog gets exclusive focus at all times. */
|
||||
if (messageboxdata->window)
|
||||
ParentWindow = ((SDL_WindowData*)messageboxdata->window->driverdata)->hwnd;
|
||||
|
||||
|
||||
which = DialogBoxIndirect(NULL, (DLGTEMPLATE*)dialog->lpDialog, ParentWindow, (DLGPROC)MessageBoxDialogProc);
|
||||
*buttonid = buttons[which].buttonid;
|
||||
|
||||
FreeDialogData(dialog);
|
||||
|
|
Loading…
Reference in New Issue