X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/45bc06dfaf9c148094ab23429af620be7e5fdd99..0f54a3be55d4ee7f8414f34e59888fa9ccbeddc4:/src/osx/cocoa/dialog.mm diff --git a/src/osx/cocoa/dialog.mm b/src/osx/cocoa/dialog.mm index 2e6a9e4415..51a4d7ea40 100644 --- a/src/osx/cocoa/dialog.mm +++ b/src/osx/cocoa/dialog.mm @@ -24,7 +24,7 @@ extern wxList wxModalDialogs; -void wxDialog::ShowWindowModal() +void wxDialog::DoShowWindowModal() { wxTopLevelWindow* parent = static_cast(wxGetTopLevelParent(GetParent())); @@ -32,7 +32,7 @@ void wxDialog::ShowWindowModal() NSWindow* parentWindow = parent->GetWXWindow(); NSWindow* theWindow = GetWXWindow(); - + [NSApp beginSheet: theWindow modalForWindow: parentWindow modalDelegate: theWindow @@ -43,76 +43,5 @@ void wxDialog::ShowWindowModal() void wxDialog::EndWindowModal() { [NSApp endSheet: GetWXWindow()]; -} - -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; - } -*/ - NSWindow* theWindow = GetWXWindow(); - - NSModalSession session = [NSApp beginModalSessionForWindow:theWindow]; - while (IsModal()) - { - wxMacAutoreleasePool autoreleasepool; - // we cannot break based on the return value, because nested - // alerts might set this to stopped as well, so it would be - // unsafe - [NSApp runModalSession:session]; - - // break if ended, perform no further idle processing - if (!IsModal()) - break; - - // do some idle processing - bool needMore = false; - if (wxTheApp) - { - wxTheApp->ProcessPendingEvents(); - needMore = wxTheApp->ProcessIdle(); - } - - if (!needMore) - { - // no more idle processing wanted - block until the next event - [theNSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantFuture] inMode:NSDefaultRunLoopMode dequeue:NO]; - } - } - [NSApp endModalSession:session]; - -/* - if ( resetGroupParent ) - { - SetWindowGroupParent( windowGroup , formerParentGroup ); - } -*/ + [GetWXWindow() orderOut:GetWXWindow()]; }