From 466e7130ababf13cb24f5820ed232d013abba601 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 7 Oct 2011 07:51:28 -0600 Subject: [PATCH] cocoa: change the way the app is initialied Calling NSApplication's `run' works better than calling `finishLaunching' directly, particularly in 64-bit Lion for some reason. Relevant to PR 12102 Relevant to PR 12257 original commit: 60101618db61c347a3477b0ced4e42e0d50d6fb2 --- collects/mred/private/wx/cocoa/queue.rkt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/collects/mred/private/wx/cocoa/queue.rkt b/collects/mred/private/wx/cocoa/queue.rkt index d0ac5d21..c3c3b16b 100644 --- a/collects/mred/private/wx/cocoa/queue.rkt +++ b/collects/mred/private/wx/cocoa/queue.rkt @@ -78,7 +78,8 @@ (queue-file-event (string->path filename))] [-a _void (applicationDidFinishLaunching: [_id notification]) (unless got-file? - (queue-start-empty-event))] + (queue-start-empty-event)) + (tellv app stop: self)] [-a _BOOL (applicationShouldHandleReopen: [_id app] hasVisibleWindows: [_BOOL has-visible?]) ;; If we have any visible windows, return #t to do the default thing. ;; Otherwise return #f, because we don't want any invisible windows resurrected. @@ -132,7 +133,11 @@ (unless (zero? v) (log-error (format "error from CGDisplayRegisterReconfigurationCallback: ~a" v)))) -(tellv app finishLaunching) +;; To make sure that `finishLaunching' is called, call `run' +;; and have `applicationDidFinishLaunching' quit the run loop, +;; which seems to work better than calling `finishLaunching' +;; directly. +(tellv app run) ;; ------------------------------------------------------------ ;; Create an event to post when MzScheme has been sleeping but is