diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2004-11-22 23:29:50 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2004-11-22 23:29:50 +0000 |
commit | 91b23308e128e0c73b89eebe30eff5d73165295a (patch) | |
tree | d2ddfd1e36efd732ebcdacacdb70a44c4f9974bc /desktop/browser.c | |
parent | 9c6094944bdaf52f46982f9b0dffb88a5f71907b (diff) | |
download | netsurf-91b23308e128e0c73b89eebe30eff5d73165295a.tar.gz netsurf-91b23308e128e0c73b89eebe30eff5d73165295a.tar.bz2 |
[project @ 2004-11-22 23:29:50 by jmb]
Move URI handleability check to last minute prior to starting fetch - this enables catching of redirects to unsupported URIs.
svn path=/import/netsurf/; revision=1371
Diffstat (limited to 'desktop/browser.c')
-rw-r--r-- | desktop/browser.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 640e2d8ea..b61dfafb4 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -173,6 +173,16 @@ void browser_window_go_post(struct browser_window *bw, const char *url, return; } + browser_window_stop(bw); + browser_window_remove_caret(bw); + + /* check we can actually handle this URL */ + if (!fetch_can_fetch(url2)) { + gui_launch_url(url2); + free(url2); + return; + } + hash = strchr(url2, '#'); if (bw->frag_id) { free(bw->frag_id); @@ -182,9 +192,6 @@ void browser_window_go_post(struct browser_window *bw, const char *url, bw->frag_id = strdup(hash+1); } - browser_window_stop(bw); - browser_window_remove_caret(bw); - browser_window_set_status(bw, messages_get("Loading")); bw->history_add = history_add; bw->time0 = clock(); @@ -798,16 +805,11 @@ void browser_window_mouse_click_html(struct browser_window *bw, pointer = GUI_POINTER_POINT; - if (click == BROWSER_MOUSE_CLICK_1 || - click == BROWSER_MOUSE_CLICK_2) { - if (fetch_can_fetch(url)) { - if (click == BROWSER_MOUSE_CLICK_1) - browser_window_go(bw, url, c->url); - else - browser_window_create(url, bw, c->url); - } else { - gui_launch_url(url); - } + if (click == BROWSER_MOUSE_CLICK_1) { + browser_window_go(bw, url, c->url); + } + else if (click == BROWSER_MOUSE_CLICK_2) { + browser_window_create(url, bw, c->url); } } else if (title) { |