wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
cancelEvent.SetEventObject( this );
- GetEventHandler()->ProcessEvent(cancelEvent);
+ HandleWindowEvent(cancelEvent);
s_closing.DeleteObject(this);
}
if ( !GetParent() && !(GetWindowStyleFlag() & wxDIALOG_NO_PARENT) )
{
wxWindow *parent = wxTheApp->GetTopWindow();
- if ( parent &&
- parent != this &&
- parent->IsBeingDeleted() &&
- !(parent->GetExtraStyle() & wxWS_EX_TRANSIENT) )
+ wxWindow * const parent = GetParentForModalDialog();
+ if ( parent && parent != this )
{
m_parent = parent;
gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(parent->m_widget) );