summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@netsurf-browser.org>2006-03-27 00:19:19 +0000
committerDaniel Silverstone <dsilvers@netsurf-browser.org>2006-03-27 00:19:19 +0000
commitdc3287127af6a93c377d3c15167084c727e655e7 (patch)
tree11009f746c3760826a73ddd67e68c69dccbef476
parent9fd4526003bcc205e1b2284aa2474ff7a27fbdec (diff)
downloadnetsurf-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.c7
-rw-r--r--desktop/browser.h3
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;
};