From: Vadim Zeitlin Date: Tue, 10 Oct 2000 13:16:16 +0000 (+0000) Subject: attempts at making modal dialogs without parent work - failed X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/e5f741e5d467b1ce7105be96e9f3dcb553e8b89d?ds=inline attempts at making modal dialogs without parent work - failed git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp index 9ae185092d..1b2d7c48a5 100644 --- a/src/msw/dialog.cpp +++ b/src/msw/dialog.cpp @@ -370,11 +370,6 @@ void wxDialog::DoShowModal() wxTheApp->DoMessage(); } -#if 0 //def __WIN32__ - if ( parent ) - ::SetActiveWindow(GetHwndOf(parent)); -#endif // __WIN32__ - // and restore focus // Note that this code MUST NOT access the dialog object's data // in case the object has been deleted (which will be the case @@ -426,6 +421,18 @@ bool wxDialog::Show(bool show) { // use it m_parent = parent; + + // VZ: to make dialog behave properly we should reparent + // the dialog for Windows as well - unfortunately, + // following the docs for SetParent() results in this + // code which plainly doesn't work +#if 0 + long dwStyle = ::GetWindowLong(GetHwnd(), GWL_STYLE); + dwStyle &= ~WS_POPUP; + dwStyle |= WS_CHILD; + ::SetWindowLong(GetHwnd(), GWL_STYLE, dwStyle); + ::SetParent(GetHwnd(), GetHwndOf(parent)); +#endif // 0 } }