diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2012-08-16 22:44:25 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2012-08-16 22:44:25 +0100 |
commit | d9bd357802795ba3b30d280bafe2c66daa44be54 (patch) | |
tree | 5a27cbfb6e53f4f2f74a4022c19dda619a5eb280 /desktop | |
parent | 35fd2ad7f2f2a62624f1445e352c0aaf6ac0b0ac (diff) | |
download | netsurf-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.c | 19 |
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; } |