diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2013-02-14 18:21:11 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2013-02-18 11:23:48 +0000 |
commit | b112dec78d5e8289ded3f61db96e495690ae96b5 (patch) | |
tree | 9babaed21ed2eb841b8d398e28814544c73656d9 /atari/ctxmenu.c | |
parent | 3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8 (diff) | |
download | netsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.gz netsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.bz2 |
change browser_window_create and refactor all callsites
Diffstat (limited to 'atari/ctxmenu.c')
-rw-r--r-- | atari/ctxmenu.c | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/atari/ctxmenu.c b/atari/ctxmenu.c index 859aeea5b..2a6d6e2ba 100644 --- a/atari/ctxmenu.c +++ b/atari/ctxmenu.c @@ -208,10 +208,11 @@ void context_popup(struct gui_window * gw, short x, short y) case POP_CTX_SAVE_LINK_AS:
if (ctx->ccdata.link_url != NULL) {
nsurl *url;
- if (nsurl_create(ctx->ccdata.link_url, &url) != NSERROR_OK) {
- warn_user("NoMemory", 0);
- } else {
- browser_window_navigate(
+ nserror error; + + error = nsurl_create(ctx->ccdata.link_url, &url); + if (error == NSERROR_OK) {
+ error = browser_window_navigate(
gw->browser->bw,
url,
hlcache_handle_get_url(gw->browser->bw->current_content),
@@ -223,6 +224,9 @@ void context_popup(struct gui_window * gw, short x, short y) );
nsurl_unref(url);
}
+ if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } }
break;
@@ -244,12 +248,22 @@ void context_popup(struct gui_window * gw, short x, short y) case POP_CTX_OPEN_NEW:
if ((ctx->flags & CNT_HREF) && ctx->ccdata.link_url) {
- browser_window_create(
- ctx->ccdata.link_url,
- gw->browser->bw,
- nsurl_access(hlcache_handle_get_url(gw->browser->bw->current_content)),
- true, false
- );
+ nsurl *url; + nserror error; + + error = nsurl_create(ctx->ccdata.link_url, &url); + if (error == NSERROR_OK) { + error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE | + BROWSER_WINDOW_GO_FLAG_HISTORY,
+ url, + hlcache_handle_get_url(gw->browser->bw->current_content),
+ gw->browser->bw
+ );
+ nsurl_unref(url); + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } }
break;
|