diff --git a/src/document/refresh.c b/src/document/refresh.c index eae40cab..2df897ce 100644 --- a/src/document/refresh.c +++ b/src/document/refresh.c @@ -94,7 +94,7 @@ do_document_refresh(void *data) } } -void +static void start_document_refresh(struct document_refresh *refresh, struct session *ses) { milliseconds_T minimum = (milliseconds_T) get_opt_int("document.browse.minimum_refresh_time"); @@ -120,3 +120,17 @@ start_document_refresh(struct document_refresh *refresh, struct session *ses) install_timer(&refresh->timer, time, do_document_refresh, ses); } + +void +start_document_refreshes(struct session *ses) +{ + assert(ses); + + if (!ses->doc_view + || !ses->doc_view->document + || !ses->doc_view->document->refresh + || !get_opt_bool("document.browse.refresh")) + return; + + start_document_refresh(ses->doc_view->document->refresh, ses); +} diff --git a/src/document/refresh.h b/src/document/refresh.h index f9b4c9c5..2d8732cd 100644 --- a/src/document/refresh.h +++ b/src/document/refresh.h @@ -16,6 +16,6 @@ struct document_refresh { struct document_refresh *init_document_refresh(unsigned char *url, unsigned long seconds); void done_document_refresh(struct document_refresh *refresh); void kill_document_refresh(struct document_refresh *refresh); -void start_document_refresh(struct document_refresh *refresh, struct session *ses); +void start_document_refreshes(struct session *ses); #endif diff --git a/src/session/session.c b/src/session/session.c index ae9f350e..b63a6d64 100644 --- a/src/session/session.c +++ b/src/session/session.c @@ -590,13 +590,7 @@ doc_loading_callback(struct download *download, struct session *ses) load_ecmascript_imports(ses, ses->doc_view); process_file_requests(ses); - if (ses->doc_view - && ses->doc_view->document - && ses->doc_view->document->refresh - && get_opt_bool("document.browse.refresh")) { - start_document_refresh(ses->doc_view->document->refresh, - ses); - } + start_document_refreshes(ses); if (download->state != S_OK) { print_error_dialog(ses, download->state, diff --git a/src/viewer/text/draw.c b/src/viewer/text/draw.c index 65af2d9c..8aa385b0 100644 --- a/src/viewer/text/draw.c +++ b/src/viewer/text/draw.c @@ -350,13 +350,7 @@ draw_formatted(struct session *ses, int rerender) render_document_frames(ses, rerender); /* Rerendering kills the document refreshing so restart it. */ - if (ses->doc_view - && ses->doc_view->document - && ses->doc_view->document->refresh - && get_opt_bool("document.browse.refresh")) { - start_document_refresh(ses->doc_view->document->refresh, - ses); - } + start_document_refreshes(ses); } if (ses->tab != get_current_tab(ses->tab->term))