diff options
author | Michael Drake <michael.drake@codethink.co.uk> | 2018-04-14 17:00:18 +0100 |
---|---|---|
committer | Michael Drake <michael.drake@codethink.co.uk> | 2018-04-14 17:00:18 +0100 |
commit | a72771f8ebdb7ec5474dcb039c92661d97dd4678 (patch) | |
tree | 046e8f1c1fa09a1d00502ca9dc578c8b0de0d3d5 /desktop | |
parent | 3c3685eb9635cc46fe78b31d54967b62b948581e (diff) | |
download | netsurf-a72771f8ebdb7ec5474dcb039c92661d97dd4678.tar.gz netsurf-a72771f8ebdb7ec5474dcb039c92661d97dd4678.tar.bz2 |
Browser: Don't add history entry until after reformat.
Adding a history entry causes content_redraw() for the thumbnail.
But we can't content_redraw() until after content_reformat().
Otherwise we get HTML redraw before HTML layout has happened.
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 19cfebb99..88d78ba95 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -1405,6 +1405,10 @@ browser_window_callback(hlcache_handle *c, bw->current_content = c; bw->loading_content = NULL; + /* Format the new content to the correct dimensions */ + browser_window_get_dimensions(bw, &width, &height, true); + content_reformat(c, false, width, height); + /* history */ if (bw->history_add && bw->history) { nsurl *url = hlcache_handle_get_url(c); @@ -1437,14 +1441,14 @@ browser_window_callback(hlcache_handle *c, * all newly visited URLs. With the history_add call * after, we only leak the thumbnails when urldb does * not add the URL. + * + * Also, since browser_window_history_add can create + * a thumbnail (content_redraw), we need to do it after + * content_reformat. */ browser_window_history_add(bw, c, bw->frag_id); } - /* Format the new content to the correct dimensions */ - browser_window_get_dimensions(bw, &width, &height, true); - content_reformat(c, false, width, height); - browser_window_remove_caret(bw, false); if (bw->window != NULL) { |