From: Vadim Zeitlin Date: Wed, 30 Nov 2011 10:48:05 +0000 (+0000) Subject: Fix setting the parent of wxProgressDialog. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/516ed23a948380fab200457b5adb2907e0b180a0 Fix setting the parent of wxProgressDialog. Don't call GetParentForModalDialog() with wxProgressDialog style, this doesn't work as it expects the window style. Do call SetParent() when using the native MSW implementation as the wx-level parent is not used then. Closes #13706. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index fb454b7953..129cd47b39 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -153,9 +153,12 @@ void wxGenericProgressDialog::Create( const wxString& title, wxWindow *parent, int style ) { - wxDialog::Create(GetParentForModalDialog(parent, style), wxID_ANY, title); + // Notice that GetParentForModalDialog() needs the dialog window style, not + // our wxProgressDialog-specific style. + wxWindow* const + realParent = GetParentForModalDialog(parent, GetWindowStyle()); + wxDialog::Create(realParent, wxID_ANY, title); - SetParent( GetParentForModalDialog(parent, style) ); SetTitle( title ); SetMaximum(maximum); diff --git a/src/msw/progdlg.cpp b/src/msw/progdlg.cpp index 0cb869aa2e..f51c879901 100644 --- a/src/msw/progdlg.cpp +++ b/src/msw/progdlg.cpp @@ -316,6 +316,7 @@ wxProgressDialog::wxProgressDialog( const wxString& title, #ifdef wxHAS_MSW_TASKDIALOG if ( HasNativeTaskDialog() ) { + SetParent(GetParentForModalDialog(parent, GetWindowStyle())); SetMaximum(maximum); Show();