summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2016-04-21 13:12:56 +0100
committerVincent Sanders <vince@kyllikki.org>2016-04-21 13:12:56 +0100
commit77a1b4b5e01846e2c9684f57fda1bac0d6d854e5 (patch)
tree6c49f40b202413c945f1e3bf1b27c47a305ced55
parent377652e0474d45904e9796fda547dcad7877bb4f (diff)
downloadnetsurf-77a1b4b5e01846e2c9684f57fda1bac0d6d854e5.tar.gz
netsurf-77a1b4b5e01846e2c9684f57fda1bac0d6d854e5.tar.bz2
replace wallclock API usage with nsutils monitonic time
-rw-r--r--desktop/browser.c22
-rw-r--r--desktop/browser_private.h2
2 files changed, 15 insertions, 9 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 14fdb565d..d93af2938 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -842,9 +842,11 @@ nserror browser_window_create(enum browser_window_create_flags flags,
ret->scrolling = BW_SCROLLING_YES;
ret->border = true;
ret->no_resize = true;
- ret->last_action = wallclock();
ret->focus = ret;
+ /* initialise last action with creation time */
+ nsu_getmonotonic_ms(&ret->last_action);
+
/* The existing gui_window is on the top-level existing
* browser_window. */
existing = browser_window_get_root(existing);
@@ -2079,7 +2081,7 @@ nserror browser_window_navigate(struct browser_window *bw,
}
/* Record time */
- bw->last_action = wallclock();
+ nsu_getmonotonic_ms(&bw->last_action);
return error;
}
@@ -2492,25 +2494,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;
+ uint64_t ms_now;
assert(root);
assert(root->window);
- loading = (bw->loading_content != NULL || (bw->current_content &&
- content_get_status(bw->current_content) ==
- CONTENT_STATUS_READY));
+ loading = ((bw->loading_content != NULL) ||
+ ((bw->current_content != NULL) &&
+ (content_get_status(bw->current_content) == CONTENT_STATUS_READY)));
+
+ nsu_getmonotonic_ms(&ms_now);
- if (wallclock() - bw->last_action < 100 && loading) {
+ if (loading && ((ms_now - bw->last_action) < 1000)) {
/* 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)
+ if (loading) {
gui_shape = GUI_POINTER_PROGRESS;
- else
+ } else {
gui_shape = GUI_POINTER_DEFAULT;
+ }
} else {
/* Use what we were told */
diff --git a/desktop/browser_private.h b/desktop/browser_private.h
index 43f4402cf..efd875f7b 100644
--- a/desktop/browser_private.h
+++ b/desktop/browser_private.h
@@ -141,7 +141,7 @@ struct browser_window {
struct browser_window *focus;
/** Last time a link was followed in this window */
- unsigned int last_action;
+ uint64_t last_action;
/** Current selection */
struct {