From dc1ff3c2e3346d88885c453808dbaf11975e57b2 Mon Sep 17 00:00:00 2001 From: Alice Mikhaylenko Date: Wed, 5 Jun 2024 23:10:52 +0400 Subject: [PATCH] csscolorvalue: Fix oklab() percentage range --- gtk/gtkcsscolorvalue.c | 6 +++++- testsuite/css/parser/color.css | 8 ++++++++ testsuite/css/parser/color.ref.css | 8 ++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c index 2ecf9d5c62..63eeda5cc4 100644 --- a/gtk/gtkcsscolorvalue.c +++ b/gtk/gtkcsscolorvalue.c @@ -1432,7 +1432,11 @@ parse_ok_ab_value (GtkCssParser *parser, if (data->values[idx] == NULL) return FALSE; - data->v[idx] = gtk_css_number_value_get_canonical (data->values[idx], 0.4); + data->v[idx] = gtk_css_number_value_get_canonical (data->values[idx], 0.8); + + /* gtk_css_number_value_get_canonical() doesn't let us specify what 0% is */ + if (gtk_css_number_value_has_percent (data->values[idx])) + data->v[idx] -= 0.4; } return TRUE; diff --git a/testsuite/css/parser/color.css b/testsuite/css/parser/color.css index 6a25899c7c..df9d5153fd 100644 --- a/testsuite/css/parser/color.css +++ b/testsuite/css/parser/color.css @@ -123,3 +123,11 @@ ad { ae { color: hwb(200 10 90 / 0.5); } + +af { + color: oklab(0% 0% 0% / 0%); +} + +ag { + color: oklab(100% 100% 100% / 100%); +} diff --git a/testsuite/css/parser/color.ref.css b/testsuite/css/parser/color.ref.css index 1da7938d42..584f7f4954 100644 --- a/testsuite/css/parser/color.ref.css +++ b/testsuite/css/parser/color.ref.css @@ -123,3 +123,11 @@ ad { ae { color: rgba(26,26,26,0.5); } + +af { + color: oklab(0 -0.4 -0.4 / 0); +} + +ag { + color: oklab(1 0.4 0.4); +}