summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Lees <adrian@aemulor.com>2009-01-30 05:07:07 +0000
committerAdrian Lees <adrian@aemulor.com>2009-01-30 05:07:07 +0000
commit34fdcf3aec42ab49bfa9e255d918262e7b4c5e9d (patch)
tree523f7b57596cca1d9bd29b7e3cef82aa903f7c44
parent03a1aac36a914317e3d7d82912fd1d2147e07c80 (diff)
downloadnetsurf-34fdcf3aec42ab49bfa9e255d918262e7b4c5e9d.tar.gz
netsurf-34fdcf3aec42ab49bfa9e255d918262e7b4c5e9d.tar.bz2
And these files too, please
svn path=/trunk/netsurf/; revision=6297
-rw-r--r--desktop/browser.c20
-rw-r--r--desktop/browser.h10
-rw-r--r--desktop/selection.c7
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))