diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2005-03-20 21:13:38 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2005-03-20 21:13:38 +0000 |
commit | ba304de23b94749760a5553928048d6c47dd5e6d (patch) | |
tree | ac46c85719a635fb5eb06f0b3994bf05f3df8796 /desktop/browser.c | |
parent | 1899ba8cf19425128be4544187407157bb416823 (diff) | |
download | netsurf-ba304de23b94749760a5553928048d6c47dd5e6d.tar.gz netsurf-ba304de23b94749760a5553928048d6c47dd5e6d.tar.bz2 |
[project @ 2005-03-20 21:13:38 by jmb]
Add fragment id to URL in URL bar
svn path=/import/netsurf/; revision=1560
Diffstat (limited to 'desktop/browser.c')
-rw-r--r-- | desktop/browser.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index ae6dd3b17..312067666 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -166,6 +166,7 @@ void browser_window_go_post(struct browser_window *bw, const char *url, char *hash; url_func_result res; struct url_content *url_content; + char url_buf[256]; LOG(("bw %p, url %s", bw, url)); @@ -202,6 +203,10 @@ void browser_window_go_post(struct browser_window *bw, const char *url, (unsigned int)(hash - url2)) { free(url2); browser_window_update(bw, false); + snprintf(url_buf, sizeof url_buf, "%s#%s", + bw->current_content->url, bw->frag_id); + url_buf[sizeof url_buf - 1] = 0; + gui_window_set_url(bw->window, url_buf); return; } } @@ -250,6 +255,7 @@ void browser_window_callback(content_msg msg, struct content *c, { struct browser_window *bw = p1; char status[40]; + char url[256]; switch (msg) { case CONTENT_MSG_LOADING: @@ -266,8 +272,16 @@ void browser_window_callback(content_msg msg, struct content *c, browser_window_stop_throbber(bw); } #endif - else - gui_window_set_url(bw->window, c->url); + else { + if (bw->frag_id) + snprintf(url, sizeof url, "%s#%s", + c->url, bw->frag_id); + else + snprintf(url, sizeof url, "%s", + c->url); + url[sizeof url - 1] = 0; + gui_window_set_url(bw->window, url); + } break; case CONTENT_MSG_READY: @@ -288,7 +302,13 @@ void browser_window_callback(content_msg msg, struct content *c, bw->caret_callback = NULL; bw->scrolling_box = NULL; gui_window_new_content(bw->window); - gui_window_set_url(bw->window, c->url); + if (bw->frag_id) + snprintf(url, sizeof url, "%s#%s", + c->url, bw->frag_id); + else + snprintf(url, sizeof url, "%s", c->url); + url[sizeof url - 1] = 0; + gui_window_set_url(bw->window, url); browser_window_update(bw, true); content_open(c, bw, 0, 0, 0); browser_window_set_status(bw, c->status_message); |