[packages/elinks] - initialize unit_len_ctx
witekfl
witekfl at pld-linux.org
Sun Jan 7 12:49:34 CET 2024
commit 96353695bbafc1a05370fd6c36ea49af0589ca60
Author: Witold Filipczyk <witekfl at poczta.onet.pl>
Date: Sun Jan 7 11:50:11 2024 +0100
- initialize unit_len_ctx
libcss-0.9.2.patch | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 142 insertions(+)
---
diff --git a/libcss-0.9.2.patch b/libcss-0.9.2.patch
new file mode 100644
index 0000000..040519a
--- /dev/null
+++ b/libcss-0.9.2.patch
@@ -0,0 +1,142 @@
+commit 2fdb04a6ab5523b94c4bd5c0062b0701686e127f
+Author: Witold Filipczyk <witekfl at poczta.onet.pl>
+Date: Mon Jan 1 17:47:59 2024 +0100
+
+ [libcss] bump libcss to 0.9.2 and libdom to 0.4.2
+
+ Needs some tweaks. Code is compilable at least.
+
+diff --git a/meson.build b/meson.build
+index 2917865f..20d1d93d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -492,7 +492,7 @@ conf_data.set('CONFIG_LIBCSS', false)
+ cssdeps = false
+
+ if conf_data.get('CONFIG_ECMASCRIPT_SMJS') or conf_data.get('CONFIG_QUICKJS') or conf_data.get('CONFIG_MUJS')
+- cssdeps = dependency('libcss', static: st, version: '>=0.9.1')
++ cssdeps = dependency('libcss', static: st, version: '>=0.9.2')
+ deps += cssdeps
+ conf_data.set('CONFIG_LIBCSS', true)
+ endif
+@@ -501,17 +501,17 @@ conf_data.set('CONFIG_LIBDOM', false)
+ libdomdeps = false
+
+ if conf_data.get('CONFIG_ECMASCRIPT_SMJS') or conf_data.get('CONFIG_QUICKJS') or conf_data.get('CONFIG_MUJS')
+- libdomdeps = dependency('libdom', static: st, version: '>=0.4.1')
++ libdomdeps = dependency('libdom', static: st, version: '>=0.4.2')
+ deps += libdomdeps
+ conf_data.set('CONFIG_LIBDOM', true)
+ endif
+
+ if not conf_data.get('CONFIG_LIBCSS') and get_option('libcss')
+- cssdeps = dependency('libcss', static: st, version: '>=0.9.1')
++ cssdeps = dependency('libcss', static: st, version: '>=0.9.2')
+ deps += cssdeps
+ conf_data.set('CONFIG_LIBCSS', true)
+ if not conf_data.get('CONFIG_LIBDOM')
+- libdomdeps = dependency('libdom', static: st, version: '>=0.4.1')
++ libdomdeps = dependency('libdom', static: st, version: '>=0.4.2')
+ deps += libdomdeps
+ conf_data.set('CONFIG_LIBDOM', true)
+ endif
+diff --git a/src/document/libdom/css.c b/src/document/libdom/css.c
+index 662c5d71..02a5f66e 100644
+--- a/src/document/libdom/css.c
++++ b/src/document/libdom/css.c
+@@ -222,7 +222,6 @@ static css_select_handler selection_handler = {
+ node_is_lang,
+ node_presentational_hint,
+ ua_default_for_property,
+- compute_font_size,
+ set_libcss_node_data,
+ get_libcss_node_data
+ };
+@@ -287,7 +286,9 @@ 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,
+- const css_media *media, const css_stylesheet *inline_style)
++ const css_media *media,
++ const css_unit_ctx *unit_len_ctx,
++ const css_stylesheet *inline_style)
+ {
+ css_computed_style *composed;
+ css_select_results *styles;
+@@ -295,7 +296,7 @@ css_select_results *nscss_get_style(nscss_select_ctx *ctx, dom_node *n,
+ css_error error;
+
+ /* Select style for node */
+- error = css_select_style(ctx->ctx, n, media, inline_style,
++ error = css_select_style(ctx->ctx, n, unit_len_ctx, media, inline_style,
+ &selection_handler, ctx, &styles);
+
+ if (error != CSS_OK || styles == NULL) {
+@@ -310,8 +311,7 @@ css_select_results *nscss_get_style(nscss_select_ctx *ctx, dom_node *n,
+ * element's style */
+ error = css_computed_style_compose(ctx->parent_style,
+ styles->styles[CSS_PSEUDO_ELEMENT_NONE],
+- compute_font_size, ctx,
+- &composed);
++ unit_len_ctx, &composed);
+ if (error != CSS_OK) {
+ css_select_results_destroy(styles);
+ return NULL;
+@@ -342,8 +342,7 @@ css_select_results *nscss_get_style(nscss_select_ctx *ctx, dom_node *n,
+ error = css_computed_style_compose(
+ styles->styles[CSS_PSEUDO_ELEMENT_NONE],
+ styles->styles[pseudo_element],
+- compute_font_size, ctx,
+- &composed);
++ unit_len_ctx, &composed);
+ if (error != CSS_OK) {
+ /* TODO: perhaps this shouldn't be quite so
+ * catastrophic? */
+@@ -367,6 +366,7 @@ css_select_results *nscss_get_style(nscss_select_ctx *ctx, dom_node *n,
+ * \return Pointer to blank style, or NULL on failure
+ */
+ css_computed_style *nscss_get_blank_style(nscss_select_ctx *ctx,
++ const css_unit_ctx *unit_len_ctx,
+ const css_computed_style *parent)
+ {
+ css_computed_style *partial, *composed;
+@@ -381,7 +381,7 @@ css_computed_style *nscss_get_blank_style(nscss_select_ctx *ctx,
+ /* TODO: Do we really need to compose? Initial style shouldn't
+ * have any inherited properties. */
+ error = css_computed_style_compose(parent, partial,
+- compute_font_size, ctx, &composed);
++ unit_len_ctx, &composed);
+ css_computed_style_destroy(partial);
+ if (error != CSS_OK) {
+ css_computed_style_destroy(composed);
+@@ -2063,6 +2063,21 @@ select_css(struct html_context *html_context, struct html_element *html_element)
+ css_media media = {
+ .type = CSS_MEDIA_SCREEN,
+ };
++ css_unit_ctx unit_len_ctx = {0};
++ unit_len_ctx.viewport_width = 800; // TODO
++ unit_len_ctx.viewport_height = 600; // TODO
++ unit_len_ctx.device_dpi = F_90; //device_dpi;
++
++ /** \todo Change nsoption font sizes to px. */
++/// f_size = FDIV(FMUL(F_96, FDIV(INTTOFIX(nsoption_int(font_size)), F_10)), F_72);
++/// f_min = FDIV(FMUL(F_96, FDIV(INTTOFIX(nsoption_int(font_min_size)), F_10)), F_72);
++
++ unsigned int f_size = FDIV(FMUL(F_96, FDIV(INTTOFIX(50), F_10)), F_72); // TODO
++ unsigned int f_min = FDIV(FMUL(F_96, FDIV(INTTOFIX(50), F_10)), F_72); // TODO
++
++ unit_len_ctx.font_size_default = f_size;
++ unit_len_ctx.font_size_minimum = f_min;
++
+ int offset = html_element->name - html_context->document->text.source;
+ dom_node *el = (dom_node *)find_in_map(html_context->document->element_map, offset);
+
+@@ -2101,7 +2116,7 @@ select_css(struct html_context *html_context, struct html_element *html_element)
+ /// ctx.parent_style = parent_style;
+
+ /* Select style for element */
+- style = nscss_get_style(&ctx, el, &media, inline_style);
++ style = nscss_get_style(&ctx, el, &media, &unit_len_ctx, inline_style);
+
+ /* No longer need inline style */
+ if (inline_style != NULL) {
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/elinks.git/commitdiff/96353695bbafc1a05370fd6c36ea49af0589ca60
More information about the pld-cvs-commit
mailing list