diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2004-03-26 22:16:31 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2004-03-26 22:16:31 +0000 |
commit | 4b38a2d61a0d46485c885529a054a5bacb014c1d (patch) | |
tree | 0cce5903ac586fb7f90e14055df3872f7057c1c8 /desktop/browser.c | |
parent | 83b08353412d136d02266206dc2ec025477f70c3 (diff) | |
download | netsurf-4b38a2d61a0d46485c885529a054a5bacb014c1d.tar.gz netsurf-4b38a2d61a0d46485c885529a054a5bacb014c1d.tar.bz2 |
[project @ 2004-03-26 22:16:31 by jmb]
Imagemap support
svn path=/import/netsurf/; revision=671
Diffstat (limited to 'desktop/browser.c')
-rw-r--r-- | desktop/browser.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 3b9294ade..305f7186f 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -24,6 +24,7 @@ #include "netsurf/desktop/401login.h" #endif #include "netsurf/desktop/browser.h" +#include "netsurf/desktop/imagemap.h" #include "netsurf/render/box.h" #include "netsurf/render/font.h" #include "netsurf/render/form.h" @@ -1362,6 +1363,34 @@ void browser_window_follow_link(struct browser_window *bw, free(url); break; } + if (click_boxes[i].box->usemap != NULL) { + char *href, *url; + + href = imagemap_get(bw->current_content, + click_boxes[i].box->usemap, + click_boxes[i].actual_x, + click_boxes[i].actual_y, + click_x, click_y); + if (!href) + continue; + + url = url_join(href, + bw->current_content->data.html. + base_url); + if (!url) + continue; + + if (click_type == 1) { + browser_window_go(bw, url); + } else if (click_type == 2) { + browser_window_create(url); + } else if (click_type == 0) { + browser_window_set_status(bw, url); + done = 1; + } + free(url); + break; + } if (click_type == 0 && click_boxes[i].box->title != NULL) { browser_window_set_status(bw, click_boxes[i].box-> |