summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2012-08-16 22:44:25 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2012-08-16 22:44:25 +0100
commitd9bd357802795ba3b30d280bafe2c66daa44be54 (patch)
tree5a27cbfb6e53f4f2f74a4022c19dda619a5eb280
parent35fd2ad7f2f2a62624f1445e352c0aaf6ac0b0ac (diff)
downloadnetsurf-d9bd357802795ba3b30d280bafe2c66daa44be54.tar.gz
netsurf-d9bd357802795ba3b30d280bafe2c66daa44be54.tar.bz2
Move browser window related control over mouse pointer out of html content handler.
-rw-r--r--desktop/browser.c19
-rw-r--r--render/html_interaction.c19
2 files changed, 19 insertions, 19 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 779f7082f..17e35619d 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -1924,14 +1924,29 @@ void browser_window_set_pointer(struct browser_window *bw,
{
struct browser_window *root = browser_window_get_root(bw);
gui_pointer_shape gui_shape;
+ bool loading;
assert(root);
assert(root->window);
- if (shape == BROWSER_POINTER_AUTO) {
- gui_shape = GUI_POINTER_DEFAULT;
+ loading = (bw->loading_content != NULL || (bw->current_content &&
+ content_get_status(bw->current_content) ==
+ CONTENT_STATUS_READY));
+
+ if (wallclock() - bw->last_action < 100 && loading) {
+ /* If loading and less than 1 second since last link followed,
+ * force progress indicator pointer */
+ gui_shape = GUI_POINTER_PROGRESS;
+
+ } else if (shape == BROWSER_POINTER_AUTO) {
+ /* Up to browser window to decide */
+ if (loading)
+ gui_shape = GUI_POINTER_PROGRESS;
+ else
+ gui_shape = GUI_POINTER_DEFAULT;
} else {
+ /* Use what we were told */
gui_shape = (gui_pointer_shape)shape;
}
diff --git a/render/html_interaction.c b/render/html_interaction.c
index 5ba286e04..b4e2c049b 100644
--- a/render/html_interaction.c
+++ b/render/html_interaction.c
@@ -731,19 +731,9 @@ browser_pointer_shape get_pointer_shape(struct browser_window *bw, struct box *b
css_computed_style *style;
enum css_cursor_e cursor;
lwc_string **cursor_uris;
- bool loading;
assert(bw);
- loading = (bw->loading_content != NULL || (bw->current_content &&
- content_get_status(bw->current_content) ==
- CONTENT_STATUS_READY));
-
- if (wallclock() - bw->last_action < 100 && loading)
- /* If less than 1 second since last link followed, show
- * progress indicating pointer and we're loading something */
- return BROWSER_POINTER_PROGRESS;
-
if (box->type == BOX_FLOAT_LEFT || box->type == BOX_FLOAT_RIGHT)
style = box->children->style;
else
@@ -769,13 +759,8 @@ browser_pointer_shape get_pointer_shape(struct browser_window *bw, struct box *b
/* text input */
pointer = BROWSER_POINTER_CARET;
} else {
- /* anything else */
- if (loading) {
- /* loading new content */
- pointer = BROWSER_POINTER_PROGRESS;
- } else {
- pointer = BROWSER_POINTER_DEFAULT;
- }
+ /* html content doesn't mind */
+ pointer = BROWSER_POINTER_AUTO;
}
break;
case CSS_CURSOR_CROSSHAIR: