summaryrefslogtreecommitdiff
path: root/atari
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2013-02-14 15:09:28 +0000
committerVincent Sanders <vince@netsurf-browser.org>2013-02-18 11:23:27 +0000
commit3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8 (patch)
tree40aa4e52aa50010c8f7c47dda79be2b77339e546 /atari
parentc545bb4b42dff8bfd4c288e330f52848ec2df6c4 (diff)
downloadnetsurf-3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8.tar.gz
netsurf-3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8.tar.bz2
browser_window_navigate refactor
Diffstat (limited to 'atari')
-rw-r--r--atari/ctxmenu.c34
-rw-r--r--atari/toolbar.c45
2 files changed, 62 insertions, 17 deletions
diff --git a/atari/ctxmenu.c b/atari/ctxmenu.c
index d89060a65..859aeea5b 100644
--- a/atari/ctxmenu.c
+++ b/atari/ctxmenu.c
@@ -192,21 +192,37 @@ void context_popup(struct gui_window * gw, short x, short y)
case POP_CTX_SAVE_AS:
if (ctx->ccdata.object != NULL) {
if( hlcache_handle_get_url(ctx->ccdata.object) != NULL ) {
- browser_window_download(
+ browser_window_navigate(
gw->browser->bw,
- nsurl_access(hlcache_handle_get_url(ctx->ccdata.object)),
- nsurl_access(hlcache_handle_get_url(gw->browser->bw->current_content))
- );
+ hlcache_handle_get_url(ctx->ccdata.object),
+ hlcache_handle_get_url(gw->browser->bw->current_content),
+ BROWSER_WINDOW_GO_FLAG_DOWNLOAD |
+ BROWSER_WINDOW_GO_FLAG_VERIFIABLE,
+ NULL,
+ NULL,
+ NULL
+ );
}
}
case POP_CTX_SAVE_LINK_AS:
if (ctx->ccdata.link_url != NULL) {
- browser_window_download(
- gw->browser->bw,
- ctx->ccdata.link_url,
- nsurl_access(hlcache_handle_get_url(gw->browser->bw->current_content))
- );
+ nsurl *url;
+ if (nsurl_create(ctx->ccdata.link_url, &url) != NSERROR_OK) {
+ warn_user("NoMemory", 0);
+ } else {
+ browser_window_navigate(
+ gw->browser->bw,
+ url,
+ hlcache_handle_get_url(gw->browser->bw->current_content),
+ BROWSER_WINDOW_GO_FLAG_DOWNLOAD |
+ BROWSER_WINDOW_GO_FLAG_VERIFIABLE,
+ NULL,
+ NULL,
+ NULL
+ );
+ nsurl_unref(url);
+ }
}
break;
diff --git a/atari/toolbar.c b/atari/toolbar.c
index d71f2eeb0..eca44fa88 100644
--- a/atari/toolbar.c
+++ b/atari/toolbar.c
@@ -705,10 +705,25 @@ bool toolbar_key_input(struct s_toolbar *tb, short nkc)
}
}
else if (ik == KEY_CR || ik == KEY_NL) {
+ nsurl *url;
char tmp_url[PATH_MAX];
if ( textarea_get_text( tb->url.textarea, tmp_url, PATH_MAX) > 0 ) {
window_set_focus(tb->owner, BROWSER, gw->browser);
- browser_window_go(gw->browser->bw, (const char*)&tmp_url, 0, true);
+
+ if (nsurl_create((const char*)&tmp_url, &url) != NSERROR_OK) {
+ warn_user("NoMemory", 0);
+ } else {
+ browser_window_navigate(gw->browser->bw,
+ url,
+ NULL,
+ BROWSER_WINDOW_GO_FLAG_HISTORY |
+ BROWSER_WINDOW_GO_FLAG_VERIFIABLE,
+ NULL,
+ NULL,
+ NULL);
+ nsurl_unref(url);
+ }
+
ret = true;
}
}
@@ -939,14 +954,28 @@ void toolbar_forward_click(struct s_toolbar *tb)
void toolbar_home_click(struct s_toolbar *tb)
{
- struct browser_window * bw;
- struct gui_window * gw;
+ struct browser_window * bw;
+ struct gui_window * gw;
+ nsurl *url;
- gw = window_get_active_gui_window(tb->owner);
- assert(gw != NULL);
- bw = gw->browser->bw;
- assert(bw != NULL);
- browser_window_go(bw, option_homepage_url, 0, true);
+ gw = window_get_active_gui_window(tb->owner);
+ assert(gw != NULL);
+ bw = gw->browser->bw;
+ assert(bw != NULL);
+
+ if (nsurl_create(nsoption_charp(option_homepage_url), &url) != NSERROR_OK) {
+ warn_user("NoMemory", 0);
+ } else {
+ browser_window_navigate(bw,
+ url,
+ NULL,
+ BROWSER_WINDOW_GO_FLAG_HISTORY |
+ BROWSER_WINDOW_GO_FLAG_VERIFIABLE,
+ NULL,
+ NULL,
+ NULL);
+ nsurl_unref(url);
+ }
}