summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2004-11-22 23:29:50 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2004-11-22 23:29:50 +0000
commit91b23308e128e0c73b89eebe30eff5d73165295a (patch)
treed2ddfd1e36efd732ebcdacacdb70a44c4f9974bc /desktop
parent9c6094944bdaf52f46982f9b0dffb88a5f71907b (diff)
downloadnetsurf-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')
-rw-r--r--desktop/browser.c28
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) {