summaryrefslogtreecommitdiff
path: root/desktop
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 /desktop
parent35fd2ad7f2f2a62624f1445e352c0aaf6ac0b0ac (diff)
downloadnetsurf-d9bd357802795ba3b30d280bafe2c66daa44be54.tar.gz
netsurf-d9bd357802795ba3b30d280bafe2c66daa44be54.tar.bz2
Move browser window related control over mouse pointer out of html content handler.
Diffstat (limited to 'desktop')
-rw-r--r--desktop/browser.c19
1 files changed, 17 insertions, 2 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;
}