X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c33522fca7cddc441a316f5b9fb50d7685435ba..795dac4c866d89804e625fa1d04cb70aba320183:/src/osx/carbon/dialog.cpp diff --git a/src/osx/carbon/dialog.cpp b/src/osx/carbon/dialog.cpp index cbd77128db..9924b54b06 100644 --- a/src/osx/carbon/dialog.cpp +++ b/src/osx/carbon/dialog.cpp @@ -34,34 +34,32 @@ void wxDialog::DoShowModal() SetFocus() ; WindowRef windowRef = (WindowRef) GetWXWindow(); - WindowGroupRef windowGroup; - WindowGroupRef formerParentGroup; + WindowGroupRef windowGroup = NULL; + WindowGroupRef formerParentGroup = NULL; bool resetGroupParent = false; if ( GetParent() == NULL ) { windowGroup = GetWindowGroup(windowRef) ; - formerParentGroup = GetWindowGroupParent( windowGroup ); - SetWindowGroupParent( windowGroup, GetWindowGroupOfClass( kMovableModalWindowClass ) ); - resetGroupParent = true; + if ( windowGroup != GetWindowGroupOfClass( kMovableModalWindowClass ) ) + { + formerParentGroup = GetWindowGroupParent( windowGroup ); + SetWindowGroupParent( windowGroup, GetWindowGroupOfClass( kMovableModalWindowClass ) ); + resetGroupParent = true; + } } BeginAppModalStateForWindow(windowRef) ; - wxEventLoop * const - loop = static_cast(wxEventLoop::GetActive()); - - - wxASSERT_MSG( loop , wxT("No Event Loop in place") ); - - if ( loop ) - { - while ( IsModal() ) - loop->Dispatch(); - } +#if wxUSE_CONSOLE_EVENTLOOP + wxEventLoopGuarantor ensureHasLoop; +#endif + wxEventLoopBase * const loop = wxEventLoop::GetActive(); + while ( IsModal() ) + loop->Dispatch(); EndAppModalStateForWindow(windowRef) ; if ( resetGroupParent ) { SetWindowGroupParent( windowGroup , formerParentGroup ); } -} \ No newline at end of file +}