From 0db71994ea8ffd8a95b38b4ca415bc76d75a3acf Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 6 May 2019 15:37:44 +0100 Subject: HTML: Before building the box tree, get viewport dimensions. --- content/handlers/html/html.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'content') 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"); -- cgit v1.2.3