don't use GetParent() in GetParentForModalDialog() itself as it can be called before m_parent is initialized

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-05-09 16:55:37 +00:00
parent 465eba1483
commit 4f73f25cc8
4 changed files with 14 additions and 11 deletions

View File

@@ -80,8 +80,10 @@ void wxDialogBase::Init()
wxWindow *wxDialogBase::CheckIfCanBeUsedAsParent(wxWindow *parent) const
{
extern WXDLLIMPEXP_DATA_CORE(wxList) wxPendingDelete;
if ( !parent )
return NULL;
extern WXDLLIMPEXP_DATA_CORE(wxList) wxPendingDelete;
if ( wxPendingDelete.Member(parent) || parent->IsBeingDeleted() )
{
// this window is being deleted and we shouldn't create any children
@@ -120,17 +122,14 @@ wxWindow *wxDialogBase::GetParentForModalDialog(wxWindow *parent) const
if ( HasFlag(wxDIALOG_NO_PARENT) )
return NULL;
// by default, use the parent specified in the ctor
if ( !parent )
parent = GetParent();
// first try the given parent
if ( parent )
parent = CheckIfCanBeUsedAsParent(wxGetTopLevelParent(parent));
// then the currently active window
if ( !parent )
parent = CheckIfCanBeUsedAsParent(wxGetActiveWindow());
parent = CheckIfCanBeUsedAsParent(
wxGetTopLevelParent(wxGetActiveWindow()));
// and finally the application main window
if ( !parent )