diff options
author | Adrian Lees <adrian@aemulor.com> | 2009-01-30 05:07:07 +0000 |
---|---|---|
committer | Adrian Lees <adrian@aemulor.com> | 2009-01-30 05:07:07 +0000 |
commit | 34fdcf3aec42ab49bfa9e255d918262e7b4c5e9d (patch) | |
tree | 523f7b57596cca1d9bd29b7e3cef82aa903f7c44 /desktop | |
parent | 03a1aac36a914317e3d7d82912fd1d2147e07c80 (diff) | |
download | netsurf-34fdcf3aec42ab49bfa9e255d918262e7b4c5e9d.tar.gz netsurf-34fdcf3aec42ab49bfa9e255d918262e7b4c5e9d.tar.bz2 |
And these files too, please
svn path=/trunk/netsurf/; revision=6297
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 20 | ||||
-rw-r--r-- | desktop/browser.h | 10 | ||||
-rw-r--r-- | 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 @@ -220,6 +220,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. * * \param bw 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)) |