diff options
author | Vincent Sanders <vince@kyllikki.org> | 2014-10-12 23:35:09 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2014-10-12 23:35:09 +0100 |
commit | a726860d4eccb9a2ebc305c0de119833613137db (patch) | |
tree | 7cc216d8c411ccf5fff02a7b8a6b16ce6cfc284d /cocoa/NetsurfApp.m | |
parent | 21f8f8170a7ad9748a21703f8397349d68f3e660 (diff) | |
download | netsurf-a726860d4eccb9a2ebc305c0de119833613137db.tar.gz netsurf-a726860d4eccb9a2ebc305c0de119833613137db.tar.bz2 |
remove use of deprecated netsurf_quit variable in cocoa
The core no longer needs to run the event polling loop as fetches are now
scheduler driven. This is part of a series which will ultimately remove
netsurf_poll callback altogether.
Diffstat (limited to 'cocoa/NetsurfApp.m')
-rw-r--r-- | cocoa/NetsurfApp.m | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/cocoa/NetsurfApp.m b/cocoa/NetsurfApp.m index f9cc98885..7469e579d 100644 --- a/cocoa/NetsurfApp.m +++ b/cocoa/NetsurfApp.m @@ -47,11 +47,12 @@ #define NETSURF_HOMEPAGE "http://www.netsurf-browser.org/welcome/" #endif - @implementation NetSurfApp @synthesize frontTab; +static bool cocoa_done = false; + - (void) loadOptions; { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; @@ -83,8 +84,23 @@ - (void) run; { [self finishLaunching]; + [self loadOptions]; - netsurf_main_loop(); + + while (!cocoa_done) { + cocoa_autorelease(); + + NSEvent *event = [NSApp nextEventMatchingMask: NSAnyEventMask + untilDate: [NSDate distantFuture] + inMode: NSDefaultRunLoopMode + dequeue: YES]; + if (nil != event) { + [NSApp sendEvent: event]; + [NSApp updateWindows]; + } + + } + [self saveOptions]; } @@ -92,10 +108,16 @@ { [[NSNotificationCenter defaultCenter] postNotificationName:NSApplicationWillTerminateNotification object:self]; - netsurf_quit = true; - [self postEvent: [NSEvent otherEventWithType: NSApplicationDefined location: NSZeroPoint - modifierFlags: 0 timestamp: 0 windowNumber: 0 context: NULL - subtype: 0 data1: 0 data2: 0] + cocoa_done = true; + [self postEvent: [NSEvent otherEventWithType: NSApplicationDefined + location: NSZeroPoint + modifierFlags: 0 + timestamp: 0 + windowNumber: 0 + context: NULL + subtype: 0 + data1: 0 + data2: 0] atStart: YES]; } @@ -190,15 +212,15 @@ int main( int argc, char **argv ) .clipboard = cocoa_clipboard_table, .download = cocoa_download_table, .fetch = cocoa_fetch_table, - .search = cocoa_search_table, + .search = cocoa_search_table, }; cocoa_autorelease(); - error = netsurf_register(&cocoa_table); - if (error != NSERROR_OK) { - die("NetSurf operation table failed registration"); - } + error = netsurf_register(&cocoa_table); + if (error != NSERROR_OK) { + die("NetSurf operation table failed registration"); + } const char * const messages = [[[NSBundle mainBundle] pathForResource: @"Messages" ofType: @""] UTF8String]; const char * const options = cocoa_get_options_file(); |