diff options
author | Michael Drake <michael.drake@codethink.co.uk> | 2019-05-06 15:37:44 +0100 |
---|---|---|
committer | Michael Drake <michael.drake@codethink.co.uk> | 2019-05-06 15:38:33 +0100 |
commit | 0db71994ea8ffd8a95b38b4ca415bc76d75a3acf (patch) | |
tree | fbc5084c891bff418a7369290830efd390d76719 /content | |
parent | 0f3b27916733bb8d962a8fd9434422421d489e23 (diff) | |
download | netsurf-0db71994ea8ffd8a95b38b4ca415bc76d75a3acf.tar.gz netsurf-0db71994ea8ffd8a95b38b4ca415bc76d75a3acf.tar.bz2 |
HTML: Before building the box tree, get viewport dimensions.
Diffstat (limited to 'content')
-rw-r--r-- | content/handlers/html/html.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/content/handlers/html/html.c b/content/handlers/html/html.c index 6fe45adca..4443d2ee5 100644 --- a/content/handlers/html/html.c +++ b/content/handlers/html/html.c @@ -570,6 +570,25 @@ static bool html_process_img(html_content *c, dom_node *node) return success; } +static void html_get_dimensions(html_content *htmlc) +{ + unsigned w; + unsigned h; + union content_msg_data msg_data = { + .getdims = { + .viewport_width = &w, + .viewport_height = &h, + }, + }; + + content_broadcast(&htmlc->base, CONTENT_MSG_GETDIMS, &msg_data); + + htmlc->media.width.value = INTTOFIX(w); + htmlc->media.width.unit = CSS_UNIT_PX; + htmlc->media.height.value = INTTOFIX(h); + htmlc->media.height.unit = CSS_UNIT_PX; +} + /* exported function documented in html/html_internal.h */ void html_finish_conversion(html_content *htmlc) { @@ -632,6 +651,8 @@ void html_finish_conversion(html_content *htmlc) return; } + html_get_dimensions(htmlc); + error = dom_to_box(html, htmlc, html_box_convert_done); if (error != NSERROR_OK) { NSLOG(netsurf, INFO, "box conversion failed"); |