diff options
author | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2006-03-27 00:19:19 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2006-03-27 00:19:19 +0000 |
commit | dc3287127af6a93c377d3c15167084c727e655e7 (patch) | |
tree | 11009f746c3760826a73ddd67e68c69dccbef476 | |
parent | 9fd4526003bcc205e1b2284aa2474ff7a27fbdec (diff) | |
download | netsurf-dc3287127af6a93c377d3c15167084c727e655e7.tar.gz netsurf-dc3287127af6a93c377d3c15167084c727e655e7.tar.bz2 |
[project @ 2006-03-27 00:19:19 by dsilvers]
Defer scheduling a refresh until the content is loaded. This prevents assertion failures in the rare case that a schedule_run ends up being called before a content object containing a refresh which is due is fully loaded
svn path=/import/netsurf/; revision=2193
-rw-r--r-- | desktop/browser.c | 7 | ||||
-rw-r--r-- | desktop/browser.h | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index af081e0fd..4301bea06 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -291,6 +291,7 @@ void browser_window_callback(content_msg msg, struct content *c, c->url); url[sizeof url - 1] = 0; gui_window_set_url(bw->window, url); + bw->refresh_interval = -1; } break; @@ -366,6 +367,9 @@ void browser_window_callback(content_msg msg, struct content *c, hotlist_visited(c); free(bw->referer); bw->referer = 0; + if (bw->refresh_interval != -1) + schedule(bw->refresh_interval, + browser_window_refresh, bw); break; case CONTENT_MSG_ERROR: @@ -455,8 +459,7 @@ void browser_window_callback(content_msg msg, struct content *c, #endif case CONTENT_MSG_REFRESH: - schedule(data.delay * 100, - browser_window_refresh, bw); + bw->refresh_interval = data.delay * 100; break; default: diff --git a/desktop/browser.h b/desktop/browser.h index 642512592..1d1239cb0 100644 --- a/desktop/browser.h +++ b/desktop/browser.h @@ -95,6 +95,9 @@ struct browser_window { /** Current fetch is download */ bool download; + + /** Refresh interval (-1 if undefined) */ + int refresh_interval; }; |