-void wxDialog::DoShowModal()
-{
- wxCHECK_RET( !IsModal(), wxT("DoShowModal() called twice") );
-
- // If the app hasn't started, flush the event queue
- // If we don't do this, the Dock doesn't get the message that
- // the app has started so will refuse to activate it.
- NSApplication *theNSApp = [NSApplication sharedApplication];
- if (![theNSApp isRunning])
- {
- wxMacAutoreleasePool pool;
- while(NSEvent *event = [theNSApp nextEventMatchingMask:NSAnyEventMask untilDate:nil inMode:NSDefaultRunLoopMode dequeue:YES])
- {
- [theNSApp sendEvent:event];
- }
- }
-
- wxModalDialogs.Append(this);
-
- SetFocus() ;
-/*
- WindowGroupRef windowGroup;
- WindowGroupRef formerParentGroup;
- bool resetGroupParent = false;
-
- if ( GetParent() == NULL )
- {
- windowGroup = GetWindowGroup(windowRef) ;
- formerParentGroup = GetWindowGroupParent( windowGroup );
- SetWindowGroupParent( windowGroup, GetWindowGroupOfClass( kMovableModalWindowClass ) );
- resetGroupParent = true;
- }
-*/
+void wxDialog::DoShowWindowModal()
+{
+ wxTopLevelWindow* parent = static_cast<wxTopLevelWindow*>(wxGetTopLevelParent(GetParent()));
+
+ wxASSERT_MSG(parent, "ShowWindowModal requires the dialog to have a parent.");
+
+ NSWindow* parentWindow = parent->GetWXWindow();