diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2013-02-14 15:09:28 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2013-02-18 11:23:27 +0000 |
commit | 3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8 (patch) | |
tree | 40aa4e52aa50010c8f7c47dda79be2b77339e546 /cocoa/BrowserView.m | |
parent | c545bb4b42dff8bfd4c288e330f52848ec2df6c4 (diff) | |
download | netsurf-3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8.tar.gz netsurf-3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8.tar.bz2 |
browser_window_navigate refactor
Diffstat (limited to 'cocoa/BrowserView.m')
-rw-r--r-- | cocoa/BrowserView.m | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/cocoa/BrowserView.m b/cocoa/BrowserView.m index 72ba0ea00..63efac468 100644 --- a/cocoa/BrowserView.m +++ b/cocoa/BrowserView.m @@ -585,7 +585,19 @@ static browser_mouse_state cocoa_mouse_flags_for_event( NSEvent *evt ) - (IBAction) cmDownloadURL: (id) sender; { - browser_window_download( browser, [[sender representedObject] UTF8String], NULL ); + nsurl *url; + + if (nsurl_create([[sender representedObject] UTF8String], &url) == NSERROR_OK) { + browser_window_navigate(browser, + url, + NULL, + BROWSER_WINDOW_GO_FLAG_DOWNLOAD | + BROWSER_WINDOW_GO_FLAG_VERIFIABLE, + NULL, + NULL, + NULL); + nsurl_unref(url); + } } - (IBAction) cmImageCopy: (id) sender; @@ -622,17 +634,37 @@ static browser_mouse_state cocoa_mouse_flags_for_event( NSEvent *evt ) - (BOOL)performDragOperation:(id <NSDraggingInfo>)sender { - NSPasteboard *pb = [sender draggingPasteboard]; + nsurl *url; + nserror error; + + NSPasteboard *pb = [sender draggingPasteboard]; - NSString *type = [pb availableTypeFromArray:[NSArray arrayWithObjects: @"public.url", NSURLPboardType, nil]]; + NSString *type = [pb availableTypeFromArray:[NSArray arrayWithObjects: @"public.url", NSURLPboardType, nil]]; - NSString *url = nil; - if ([type isEqualToString: NSURLPboardType]) url = [[NSURL URLFromPasteboard: pb] absoluteString]; - else url = [pb stringForType: type]; + NSString *urlstr = nil; + + if ([type isEqualToString: NSURLPboardType]) { + urlstr = [[NSURL URLFromPasteboard: pb] absoluteString]; + } else { + urlstr = [pb stringForType: type]; + } - browser_window_go( browser, [url UTF8String], NULL, true ); + error = nsurl_create([urlstr UTF8String], &url); + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } else { + browser_window_navigate(browser, + url, + NULL, + BROWSER_WINDOW_GO_FLAG_HISTORY | + BROWSER_WINDOW_GO_FLAG_VERIFIABLE, + NULL, + NULL, + NULL); + nsurl_unref(url); + } - return YES; + return YES; } // MARK: - |