From 34fdcf3aec42ab49bfa9e255d918262e7b4c5e9d Mon Sep 17 00:00:00 2001 From: Adrian Lees Date: Fri, 30 Jan 2009 05:07:07 +0000 Subject: And these files too, please svn path=/trunk/netsurf/; revision=6297 --- desktop/browser.c | 20 ++++++++++++++++++++ desktop/browser.h | 10 ++++++---- desktop/selection.c | 7 ------- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/desktop/browser.c b/desktop/browser.c index 59e6e7a35..08b29ca29 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -219,6 +219,22 @@ void browser_window_go(struct browser_window *bw, const char *url, } +/** + * Start a download of the given URL from a browser window. + * + * \param bw browser window + * \param url URL to start downloading (copied) + * \param referer the referring uri (copied), or 0 if none + */ + +void browser_window_download(struct browser_window *bw, const char *url, + const char *referrer) +{ + browser_window_go_post(bw, url, 0, 0, false, referrer, + true, true, 0); +} + + /** * Start fetching a page in a browser window. * @@ -1673,6 +1689,10 @@ void browser_window_mouse_action_html(struct browser_window *bw, } } } + if ((mouse & BROWSER_MOUSE_CLICK_1) && !selection_defined(bw->sel)) { + /* ensure key presses still act on the browser window */ + browser_window_remove_caret(bw); + } } assert(status); diff --git a/desktop/browser.h b/desktop/browser.h index a3a10b9f3..89b1ab67d 100644 --- a/desktop/browser.h +++ b/desktop/browser.h @@ -113,7 +113,7 @@ struct browser_window { unsigned int drag_resize_up : 1; unsigned int drag_resize_down : 1; - /** Referer for current fetch, or 0. */ + /** Referrer for current fetch, or 0. */ char *referer; /** Current fetch is download */ @@ -213,14 +213,16 @@ extern struct browser_window *current_redraw_browser; extern bool browser_reformat_pending; struct browser_window * browser_window_create(const char *url, - struct browser_window *clone, const char *referer, + struct browser_window *clone, const char *referrer, bool history_add, bool new_tab); void browser_window_initialise_common(struct browser_window *bw, struct browser_window *clone); void browser_window_go(struct browser_window *bw, const char *url, - const char *referer, bool history_add); + const char *referrer, bool history_add); void browser_window_go_unverifiable(struct browser_window *bw, - const char *url, const char *referer, bool history_add); + const char *url, const char *referrer, bool history_add); +void browser_window_download(struct browser_window *bw, + const char *url, const char *referrer); void browser_window_update(struct browser_window *bw, bool scroll_to_top); void browser_window_stop(struct browser_window *bw); void browser_window_reload(struct browser_window *bw, bool all); diff --git a/desktop/selection.c b/desktop/selection.c index ac314bd7f..9140ebbf0 100644 --- a/desktop/selection.c +++ b/desktop/selection.c @@ -696,14 +696,7 @@ void selection_clear(struct selection *s, bool redraw) void selection_select_all(struct selection *s) { - unsigned old_start, old_end; - bool was_defined; - assert(s); - was_defined = selection_defined(s); - old_start = s->start_idx; - old_end = s->end_idx; - s->defined = true; if (IS_INPUT(s->root)) -- cgit v1.2.3