summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2018-04-14 17:00:18 +0100
committerMichael Drake <michael.drake@codethink.co.uk>2018-04-14 17:00:18 +0100
commita72771f8ebdb7ec5474dcb039c92661d97dd4678 (patch)
tree046e8f1c1fa09a1d00502ca9dc578c8b0de0d3d5 /desktop
parent3c3685eb9635cc46fe78b31d54967b62b948581e (diff)
downloadnetsurf-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.c12
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) {