diff options
author | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2011-01-07 12:40:57 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2011-01-07 12:40:57 +0000 |
commit | 4b4db144f0f7df5244ef8bb39baaec64cec871a4 (patch) | |
tree | 17c427e195190a89af4c5790411859d43b535142 | |
parent | 72683554b469e55285332b08d459328461c3d7d9 (diff) | |
download | netsurf-4b4db144f0f7df5244ef8bb39baaec64cec871a4.tar.gz netsurf-4b4db144f0f7df5244ef8bb39baaec64cec871a4.tar.bz2 |
Ensure that we only set done once, but that we do reformat if we're updated. (First stage to animated favicon)
svn path=/trunk/netsurf/; revision=11240
-rw-r--r-- | render/favicon.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/render/favicon.c b/render/favicon.c index ba9c93f56..a7670dfa4 100644 --- a/render/favicon.c +++ b/render/favicon.c @@ -166,7 +166,9 @@ bool favicon_get_icon(struct content *c, xmlNode *html) url = favicon_get_icon_ref(c, html); if (url == NULL) return false; - + + LOG(("WOOP WOOP, SUMMON DA POLICE. FAVICON URL IS %s", url)); + error = hlcache_handle_retrieve(url, LLCACHE_RETRIEVE_NO_ERROR_PAGES, content__get_url(c), NULL, favicon_callback, c, NULL, permitted_types, &c->data.html.favicon); @@ -188,7 +190,7 @@ nserror favicon_callback(hlcache_handle *icon, const hlcache_event *event, void *pw) { struct content *c = pw; - bool consider_redraw = false; + bool consider_done = false; switch (event->type) { case CONTENT_MSG_LOADING: @@ -202,7 +204,7 @@ nserror favicon_callback(hlcache_handle *icon, hlcache_handle_release(icon); c->data.html.favicon = NULL; c->active -= 1; - consider_redraw = true; + consider_done = true; content_add_error(c, "NotFavIco", 0); @@ -215,7 +217,7 @@ nserror favicon_callback(hlcache_handle *icon, break; case CONTENT_MSG_DONE: c->active -= 1; - consider_redraw = true; + consider_done = true; break; case CONTENT_MSG_ERROR: @@ -227,7 +229,7 @@ nserror favicon_callback(hlcache_handle *icon, content_add_error(c, "?", 0); c->active -= 1; - consider_redraw = true; + consider_done = true; break; case CONTENT_MSG_STATUS: @@ -245,12 +247,14 @@ nserror favicon_callback(hlcache_handle *icon, assert(0); } - if (consider_redraw && (c->active == 0)) { + if (consider_done && (c->active == 0)) { /* all objects have arrived */ content__reformat(c, c->available_width, c->height); html_set_status(c, ""); content_set_done(c); - } + } else if (c->active == 0) { + content__reformat(c, c->available_width, c->height); + } return NSERROR_OK; } |