summaryrefslogtreecommitdiff
path: root/cocoa
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-10-12 23:35:09 +0100
committerVincent Sanders <vince@kyllikki.org>2014-10-12 23:35:09 +0100
commita726860d4eccb9a2ebc305c0de119833613137db (patch)
tree7cc216d8c411ccf5fff02a7b8a6b16ce6cfc284d /cocoa
parent21f8f8170a7ad9748a21703f8397349d68f3e660 (diff)
downloadnetsurf-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')
-rw-r--r--cocoa/NetsurfApp.m44
-rw-r--r--cocoa/gui.m29
2 files changed, 41 insertions, 32 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();
diff --git a/cocoa/gui.m b/cocoa/gui.m
index 8f08fc7fa..5c8089e33 100644
--- a/cocoa/gui.m
+++ b/cocoa/gui.m
@@ -49,24 +49,12 @@ NSString * const kAlwaysCloseMultipleTabs = @"AlwaysCloseMultipleTabs";
#define UNIMPL() NSLog( @"Function '%s' unimplemented", __func__ )
-static void gui_poll(bool active)
-{
- cocoa_autorelease();
-
- NSEvent *event = [NSApp nextEventMatchingMask: NSAnyEventMask untilDate: [NSDate distantFuture]
- inMode: NSDefaultRunLoopMode dequeue: YES];
-
- if (nil != event) {
- [NSApp sendEvent: event];
- [NSApp updateWindows];
- }
-}
-
struct browser_window;
-static struct gui_window *gui_window_create(struct browser_window *bw,
- struct gui_window *existing,
- gui_window_create_flags flags)
+static struct gui_window *
+gui_window_create(struct browser_window *bw,
+ struct gui_window *existing,
+ gui_window_create_flags flags)
{
BrowserWindowController *window = nil;
@@ -268,7 +256,7 @@ static void gui_create_form_select_menu(struct browser_window *bw,
static nserror gui_launch_url(nsurl *url)
{
[[NSWorkspace sharedWorkspace] openURL: [NSURL URLWithString: [NSString stringWithUTF8String: nsurl_access(url)]]];
- return NSERROR_OK;
+ return NSERROR_OK;
}
struct ssl_cert_info;
@@ -290,7 +278,7 @@ static struct gui_window_table window_table = {
.set_scroll = gui_window_set_scroll,
.get_dimensions = gui_window_get_dimensions,
.update_extent = gui_window_update_extent,
- .reformat = cocoa_window_reformat,
+ .reformat = cocoa_window_reformat,
.set_title = gui_window_set_title,
.set_url = gui_window_set_url,
@@ -299,7 +287,7 @@ static struct gui_window_table window_table = {
.set_pointer = gui_window_set_pointer,
.place_caret = gui_window_place_caret,
.remove_caret = gui_window_remove_caret,
- .new_content = gui_window_new_content,
+ .new_content = gui_window_new_content,
.start_throbber = gui_window_start_throbber,
.stop_throbber = gui_window_stop_throbber,
};
@@ -308,8 +296,7 @@ struct gui_window_table *cocoa_window_table = &window_table;
static struct gui_browser_table browser_table = {
- .poll = gui_poll,
- .schedule = cocoa_schedule,
+ .schedule = cocoa_schedule,
.launch_url = gui_launch_url,
.create_form_select_menu = gui_create_form_select_menu,