From 1502c21e9767dd6a1888937cd284fa3f7d66b376 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 13 Sep 2023 13:33:07 -0400 Subject: [PATCH] rendernode: Fix handling of color glyphs The rendernode parser was mixing up its flags. Test included. Related: #6075 --- gsk/gskrendernodeparser.c | 2 +- testsuite/gsk/meson.build | 2 ++ testsuite/gsk/nodeparser/text-color.node | 5 +++++ testsuite/gsk/nodeparser/text-color.ref.node | 5 +++++ 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 testsuite/gsk/nodeparser/text-color.node create mode 100644 testsuite/gsk/nodeparser/text-color.ref.node diff --git a/gsk/gskrendernodeparser.c b/gsk/gskrendernodeparser.c index e6ee8383c1..5d9f55a01a 100644 --- a/gsk/gskrendernodeparser.c +++ b/gsk/gskrendernodeparser.c @@ -3286,7 +3286,7 @@ gsk_text_node_serialize_glyphs (GskRenderNode *node, string_append_double (p, (double) glyphs[i].geometry.y_offset / PANGO_SCALE); if (!glyphs[i].attr.is_cluster_start) g_string_append (p, " same-cluster"); - if (!glyphs[i].attr.is_color) + if (glyphs[i].attr.is_color) g_string_append (p, " color"); } diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build index dc21ff9c18..da49766f9e 100644 --- a/testsuite/gsk/meson.build +++ b/testsuite/gsk/meson.build @@ -328,6 +328,8 @@ node_parser_tests = [ 'stroke.node', 'stroke.ref.node', 'testswitch.node', + 'text-color.node', + 'text-color.ref.node', 'text-fail.node', 'text-fail.ref.node', 'text-fail.errors', diff --git a/testsuite/gsk/nodeparser/text-color.node b/testsuite/gsk/nodeparser/text-color.node new file mode 100644 index 0000000000..8c0786bbab --- /dev/null +++ b/testsuite/gsk/nodeparser/text-color.node @@ -0,0 +1,5 @@ +text { + color: rgba(255,0,0,0.533333); + font: "Noto Sans 300"; + glyphs: 50 312, 2712 0 -156 -28.7891 color; +} diff --git a/testsuite/gsk/nodeparser/text-color.ref.node b/testsuite/gsk/nodeparser/text-color.ref.node new file mode 100644 index 0000000000..8c0786bbab --- /dev/null +++ b/testsuite/gsk/nodeparser/text-color.ref.node @@ -0,0 +1,5 @@ +text { + color: rgba(255,0,0,0.533333); + font: "Noto Sans 300"; + glyphs: 50 312, 2712 0 -156 -28.7891 color; +}