From 920d6fa23dcf954a280812feeae4baf02fcaeb57 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 4 May 2019 12:02:55 +0100 Subject: CSS: Update for change to libcss select style API. LibCSS now takes the client media spec, rather than just the media type we're selecting for. Signed-off-by: Michael Drake --- content/handlers/css/select.c | 2 +- content/handlers/css/select.h | 2 +- content/handlers/html/box_construct.c | 2 +- content/handlers/html/html.c | 1 + content/handlers/html/html_internal.h | 2 ++ 5 files changed, 6 insertions(+), 3 deletions(-) (limited to 'content/handlers') diff --git a/content/handlers/css/select.c b/content/handlers/css/select.c index ee79eb394..99840e954 100644 --- a/content/handlers/css/select.c +++ b/content/handlers/css/select.c @@ -255,7 +255,7 @@ static void nscss_dom_user_data_handler(dom_node_operation operation, * or NULL on failure */ css_select_results *nscss_get_style(nscss_select_ctx *ctx, dom_node *n, - uint64_t media, const css_stylesheet *inline_style) + const css_media *media, const css_stylesheet *inline_style) { css_computed_style *composed; css_select_results *styles; diff --git a/content/handlers/css/select.h b/content/handlers/css/select.h index 9fa6d3a56..b45d1ed3c 100644 --- a/content/handlers/css/select.h +++ b/content/handlers/css/select.h @@ -45,7 +45,7 @@ css_stylesheet *nscss_create_inline_style(const uint8_t *data, size_t len, const char *charset, const char *url, bool allow_quirks); css_select_results *nscss_get_style(nscss_select_ctx *ctx, dom_node *n, - uint64_t media, const css_stylesheet *inline_style); + const css_media *media, const css_stylesheet *inline_style); css_computed_style *nscss_get_blank_style(nscss_select_ctx *ctx, const css_computed_style *parent); diff --git a/content/handlers/html/box_construct.c b/content/handlers/html/box_construct.c index e7ac811ef..eb3bba7c3 100644 --- a/content/handlers/html/box_construct.c +++ b/content/handlers/html/box_construct.c @@ -1373,7 +1373,7 @@ css_select_results *box_get_style(html_content *c, ctx.parent_style = parent_style; /* Select style for element */ - styles = nscss_get_style(&ctx, n, CSS_MEDIA_SCREEN, inline_style); + styles = nscss_get_style(&ctx, n, &c->media, inline_style); /* No longer need inline style */ if (inline_style != NULL) diff --git a/content/handlers/html/html.c b/content/handlers/html/html.c index 30af90f97..9c60c7bb1 100644 --- a/content/handlers/html/html.c +++ b/content/handlers/html/html.c @@ -950,6 +950,7 @@ html_create_html_data(html_content *c, const http_parameter *params) c->stylesheet_count = 0; c->stylesheets = NULL; c->select_ctx = NULL; + c->media.type = CSS_MEDIA_SCREEN; c->universal = NULL; c->num_objects = 0; c->object_list = NULL; diff --git a/content/handlers/html/html_internal.h b/content/handlers/html/html_internal.h index a4ae1da57..2ba96f0f8 100644 --- a/content/handlers/html/html_internal.h +++ b/content/handlers/html/html_internal.h @@ -156,6 +156,8 @@ typedef struct html_content { struct html_stylesheet *stylesheets; /**< Style selection context */ css_select_ctx *select_ctx; + /**< Style selection media specification */ + css_media media; /**< Universal selector */ lwc_string *universal; -- cgit v1.2.3