diff --git a/gtk/gtkcsscolor.c b/gtk/gtkcsscolor.c index f301de941d..e260bb1dae 100644 --- a/gtk/gtkcsscolor.c +++ b/gtk/gtkcsscolor.c @@ -225,6 +225,60 @@ gtk_css_color_space_get_coord_name (GtkCssColorSpace color_space, } } +void +gtk_css_color_space_get_coord_range (GtkCssColorSpace color_space, + gboolean legacy_rgb_scale, + guint coord, + float *lower, + float *upper) +{ + if (coord == 3) + { + *lower = 0; + *upper = 1; + return; + } + + switch (color_space) + { + case GTK_CSS_COLOR_SPACE_SRGB: + *lower = 0; + *upper = legacy_rgb_scale ? 255 : 1; + return; + case GTK_CSS_COLOR_SPACE_SRGB_LINEAR: + *lower = 0; + *upper = 1; + return; + case GTK_CSS_COLOR_SPACE_HSL: + case GTK_CSS_COLOR_SPACE_HWB: + switch (coord) + { + case 0: *lower = *upper = NAN; return; + case 1: + case 2: *lower = 0; *upper = 100; return; + default: g_assert_not_reached (); + } + case GTK_CSS_COLOR_SPACE_OKLAB: + switch (coord) + { + case 0: *lower = 0; *upper = 1; return; + case 1: + case 2: *lower = -0.4; *upper = 0.4; return; + default: g_assert_not_reached (); + } + case GTK_CSS_COLOR_SPACE_OKLCH: + switch (coord) + { + case 0: *lower = 0; *upper = 1; return; + case 1: *lower = 0; *upper = 0.4; return; + case 2: *lower = *upper = NAN; return; + default: g_assert_not_reached (); + } + default: + g_assert_not_reached (); + } +} + static gboolean color_space_is_polar (GtkCssColorSpace color_space) { diff --git a/gtk/gtkcsscolorprivate.h b/gtk/gtkcsscolorprivate.h index 5e01dedea3..0fa1a518de 100644 --- a/gtk/gtkcsscolorprivate.h +++ b/gtk/gtkcsscolorprivate.h @@ -114,6 +114,12 @@ void gtk_css_color_interpolate (const GtkCssColor *from, const char * gtk_css_color_space_get_coord_name (GtkCssColorSpace color_space, guint coord); +void gtk_css_color_space_get_coord_range (GtkCssColorSpace color_space, + gboolean legacy_rgb_scale, + guint coord, + float *lower, + float *upper); + gboolean gtk_css_color_interpolation_method_parse (GtkCssParser *parser, GtkCssColorSpace *in, GtkCssHueInterpolation *interp); diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c index 2ecf9d5c62..c7b29aa7d2 100644 --- a/gtk/gtkcsscolorvalue.c +++ b/gtk/gtkcsscolorvalue.c @@ -593,6 +593,49 @@ apply_color_mix (GtkCssColorSpace in, missing); } +static GtkCssValue * +resolve_relative (GtkCssValue *values[4], + GtkCssColorSpace color_space, + gboolean legacy_rgb_scale) +{ + float v[4]; + gboolean m[4]; + + for (guint i = 0; i < 4; i++) + { + if (values[i]) + { + float lower, upper; + + gtk_css_color_space_get_coord_range (color_space, legacy_rgb_scale, + i, &lower, &upper); + + m[i] = FALSE; + v[i] = gtk_css_number_value_get_canonical (values[i], upper - lower); + + if (gtk_css_number_value_has_percent (values[i])) + v[i] += lower; + } + else + { + m[i] = TRUE; + v[i] = 0; + } + } + + if (color_space == GTK_CSS_COLOR_SPACE_SRGB && + legacy_rgb_scale) + { + v[0] /= 255.; + v[1] /= 255.; + v[2] /= 255.; + } + + v[3] = CLAMP (v[3], 0, 1); /* clamp alpha */ + + return gtk_css_color_value_new_color (color_space, FALSE, v, m); +} + static GtkCssValue * gtk_css_color_value_do_resolve (GtkCssValue *color, guint property_id, @@ -613,39 +656,23 @@ gtk_css_color_value_do_resolve (GtkCssValue *color, case COLOR_TYPE_RELATIVE: { - float v[4]; - gboolean m[4]; + GtkCssValue *vals[4]; for (guint i = 0; i < 4; i++) { if (color->relative.values[i]) - { - GtkCssValue *val; - - m[i] = FALSE; - val = gtk_css_value_compute (color->relative.values[i], property_id, context); - v[i] = gtk_css_number_value_get_canonical (val, 1); - - gtk_css_value_unref (val); - } + vals[i] = gtk_css_value_compute (color->relative.values[i], property_id, context); else - { - m[i] = TRUE; - v[i] = 0; - } + vals[i] = NULL; } - if (color->relative.color_space == GTK_CSS_COLOR_SPACE_SRGB && - color->relative.legacy_srgb) + value = resolve_relative (vals, color->relative.color_space, color->relative.legacy_srgb); + + for (guint i = 0; i < 4; i++) { - v[0] /= 255.; - v[1] /= 255.; - v[2] /= 255.; + if (vals[i]) + gtk_css_value_unref (vals[i]); } - - v[3] = CLAMP (v[3], 0, 1); /* clamp alpha */ - - value = gtk_css_color_value_new_color (color->relative.color_space, FALSE, v, m); } break; @@ -852,6 +879,25 @@ gtk_css_color_value_new_relative (GtkCssValue *origin, GtkCssValue *values[4]) { GtkCssValue *value; + gboolean computed = TRUE; + + if (!gtk_css_value_is_computed (origin)) + computed = FALSE; + + if (!computed) + { + for (guint i = 0; i < 4; i++) + { + if (values[i] && !gtk_css_value_is_computed (values[i])) + { + computed = FALSE; + break; + } + } + } + + if (computed) + return resolve_relative (values, color_space, legacy_srgb); value = gtk_css_value_alloc (>K_CSS_VALUE_COLOR, sizeof (GtkCssValue) + sizeof (GtkCssValue *) * 3); @@ -1432,7 +1478,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; @@ -1639,6 +1689,7 @@ parse_color_function (GtkCssParser *self, { data->ctx.color = gtk_css_color_value_parse (self); data->syntax = COLOR_SYNTAX_MODERN; + data->serialize_as_rgb = FALSE; } arg = 0; diff --git a/testsuite/css/parser/at-invalid-12.errors b/testsuite/css/parser/at-invalid-12.errors index e7f7c2595c..e637521fc2 100644 --- a/testsuite/css/parser/at-invalid-12.errors +++ b/testsuite/css/parser/at-invalid-12.errors @@ -1,3 +1,4 @@ +at-invalid-12.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-12.css:1:25-29: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-12.css:1:31-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-12.css:1:38-44: error: GTK_CSS_PARSER_ERROR_SYNTAX diff --git a/testsuite/css/parser/at-invalid-13.errors b/testsuite/css/parser/at-invalid-13.errors index 3bae351be1..882169d5aa 100644 --- a/testsuite/css/parser/at-invalid-13.errors +++ b/testsuite/css/parser/at-invalid-13.errors @@ -1,2 +1,3 @@ +at-invalid-13.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-13.css:1:25-30: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-13.css:1:32-35: error: GTK_CSS_PARSER_ERROR_SYNTAX diff --git a/testsuite/css/parser/at-invalid-14.errors b/testsuite/css/parser/at-invalid-14.errors index dcbdd47c66..abc8e20463 100644 --- a/testsuite/css/parser/at-invalid-14.errors +++ b/testsuite/css/parser/at-invalid-14.errors @@ -1 +1,2 @@ +at-invalid-14.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-14.css:1:25-28: error: GTK_CSS_PARSER_ERROR_SYNTAX diff --git a/testsuite/css/parser/at-invalid-15.errors b/testsuite/css/parser/at-invalid-15.errors index 78a782ee41..51bebcd0be 100644 --- a/testsuite/css/parser/at-invalid-15.errors +++ b/testsuite/css/parser/at-invalid-15.errors @@ -1,3 +1,4 @@ +at-invalid-15.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-15.css:1:25-30: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-15.css:1:32-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-15.css:1:36-37: error: GTK_CSS_PARSER_ERROR_SYNTAX diff --git a/testsuite/css/parser/at-invalid-16.errors b/testsuite/css/parser/at-invalid-16.errors index e8697e6304..02a0851957 100644 --- a/testsuite/css/parser/at-invalid-16.errors +++ b/testsuite/css/parser/at-invalid-16.errors @@ -1,2 +1,3 @@ +at-invalid-16.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-16.css:1:25-30: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-16.css:1:30-31: error: GTK_CSS_PARSER_ERROR_SYNTAX diff --git a/testsuite/css/parser/at-invalid-17.errors b/testsuite/css/parser/at-invalid-17.errors index dfc18a31fc..22776507c7 100644 --- a/testsuite/css/parser/at-invalid-17.errors +++ b/testsuite/css/parser/at-invalid-17.errors @@ -1 +1,2 @@ +at-invalid-17.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-invalid-17.css:1:25-26: error: GTK_CSS_PARSER_ERROR_SYNTAX diff --git a/testsuite/css/parser/at-valid-10.errors b/testsuite/css/parser/at-valid-10.errors new file mode 100644 index 0000000000..0a52cfee01 --- /dev/null +++ b/testsuite/css/parser/at-valid-10.errors @@ -0,0 +1 @@ +at-valid-10.css:1:21-29: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/at-valid-11.errors b/testsuite/css/parser/at-valid-11.errors index 534b4c4053..5aac951bd0 100644 --- a/testsuite/css/parser/at-valid-11.errors +++ b/testsuite/css/parser/at-valid-11.errors @@ -1 +1,2 @@ +at-valid-11.css:1:21-28: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-valid-11.css:1:29-34: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/at-valid-12.errors b/testsuite/css/parser/at-valid-12.errors index bcf2995b78..6c8f039db8 100644 --- a/testsuite/css/parser/at-valid-12.errors +++ b/testsuite/css/parser/at-valid-12.errors @@ -1 +1,2 @@ +at-valid-12.css:1:21-27: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-valid-12.css:1:27-32: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/at-valid-13.errors b/testsuite/css/parser/at-valid-13.errors index 1131ec7661..516a04cd68 100644 --- a/testsuite/css/parser/at-valid-13.errors +++ b/testsuite/css/parser/at-valid-13.errors @@ -1 +1,2 @@ +at-valid-13.css:1:21-27: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-valid-13.css:1:27-32: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/at-valid-14.errors b/testsuite/css/parser/at-valid-14.errors index 71543601b4..8dec1c9574 100644 --- a/testsuite/css/parser/at-valid-14.errors +++ b/testsuite/css/parser/at-valid-14.errors @@ -1,2 +1,3 @@ +at-valid-14.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-valid-14.css:1:25-30: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-valid-14.css:1:32-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/at-valid-16.errors b/testsuite/css/parser/at-valid-16.errors index 1183e6c7be..89598f76c4 100644 --- a/testsuite/css/parser/at-valid-16.errors +++ b/testsuite/css/parser/at-valid-16.errors @@ -1 +1,4 @@ +at-valid-16.css:1:21-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED +at-valid-16.css:1:25-31: error: GTK_CSS_PARSER_WARNING_DEPRECATED +at-valid-16.css:1:46-50: error: GTK_CSS_PARSER_WARNING_DEPRECATED at-valid-16.css:1:69-74: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/background-shorthand.errors b/testsuite/css/parser/background-shorthand.errors index 3f50131fa7..8a0330d722 100644 --- a/testsuite/css/parser/background-shorthand.errors +++ b/testsuite/css/parser/background-shorthand.errors @@ -1,94 +1,175 @@ background-shorthand.css:10:273-278: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:34:44-50: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:38:153-159: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:46:163-168: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:78:98-104: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:94:53-59: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:110:110-116: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:118:38-43: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:150:360-366: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:158:89-94: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:170:173-179: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:182:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:186:185-191: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:194:316-321: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:214:122-127: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:222:381-386: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:226:48-53: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:238:214-219: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:246:88-93: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:266:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:290:683-689: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:298:182-188: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:306:15-20: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:330:34-40: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:342:205-211: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:346:358-363: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:370:116-122: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:374:31-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:410:220-226: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:422:96-101: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:430:719-724: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:446:252-257: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:458:153-158: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:498:46-51: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:530:181-187: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:546:201-206: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:562:260-265: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:566:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:594:73-79: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:598:396-402: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:618:801-806: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:626:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:646:86-91: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:666:279-284: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:698:176-182: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:726:306-312: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:738:355-360: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:742:194-199: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:798:95-100: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:802:147-153: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:822:217-223: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:826:75-80: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:854:15-20: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:862:76-81: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:866:116-121: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:874:517-522: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:886:758-764: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:894:98-103: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:898:157-162: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:906:225-230: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:914:199-205: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:954:212-218: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:958:362-368: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:974:470-476: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:986:712-717: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:994:304-309: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1006:43-49: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1042:196-202: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1050:822-828: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1062:240-246: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1066:201-207: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1078:542-547: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1090:719-724: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1102:225-231: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1106:54-60: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1110:586-591: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1118:109-115: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1142:184-190: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1146:127-132: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1178:178-184: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1238:216-222: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1242:261-266: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1274:84-90: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1286:67-73: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1306:24-29: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1314:393-398: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1318:625-631: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1334:180-186: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1350:318-324: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1378:180-186: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1398:283-288: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1414:236-241: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1418:268-273: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1438:406-411: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1442:695-701: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1446:102-107: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1482:94-99: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1494:766-771: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1506:53-59: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1510:45-50: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1534:84-89: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1538:268-273: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1582:118-124: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1586:274-280: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1606:254-260: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1618:209-215: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1626:786-791: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1642:231-236: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1646:59-65: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1658:69-74: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1694:607-612: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1718:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1770:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1778:326-332: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1782:59-64: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1794:214-219: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1798:1081-1087: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1850:113-118: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1858:108-113: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1886:55-61: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1894:535-540: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1898:301-306: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1902:373-378: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1910:43-49: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1922:154-159: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1926:391-396: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1938:224-229: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1942:533-538: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1958:15-20: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1970:412-417: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:1978:161-167: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:1994:202-207: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2014:314-320: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2030:303-309: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2050:600-606: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2082:32-38: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2102:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2110:547-552: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2138:356-361: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2146:288-294: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2162:189-195: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2174:204-209: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2198:505-511: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2218:122-128: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2226:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2266:59-64: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2270:324-330: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2278:305-310: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2286:71-76: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2290:106-111: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2294:52-58: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2334:133-138: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2366:112-118: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2374:489-494: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2378:1289-1295: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2386:197-202: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2414:15-20: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2418:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2454:173-178: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2470:527-532: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2478:31-37: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2506:49-54: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2514:156-162: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2522:181-186: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2538:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2550:65-71: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2562:369-374: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2586:583-588: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2598:574-579: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2602:247-252: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2622:109-114: error: GTK_CSS_PARSER_WARNING_DEPRECATED +background-shorthand.css:2638:138-144: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2646:34-39: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2662:63-68: error: GTK_CSS_PARSER_WARNING_DEPRECATED background-shorthand.css:2674:24-29: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/border-crash-3.24.errors b/testsuite/css/parser/border-crash-3.24.errors index f7b815aaf5..6d385a489d 100644 --- a/testsuite/css/parser/border-crash-3.24.errors +++ b/testsuite/css/parser/border-crash-3.24.errors @@ -1 +1,2 @@ +border-crash-3.24.css:2:21-27: error: GTK_CSS_PARSER_WARNING_DEPRECATED border-crash-3.24.css:3:3-10: error: GTK_CSS_PARSER_ERROR_SYNTAX 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.errors b/testsuite/css/parser/color.errors index f254d78ff6..2962a952b0 100644 --- a/testsuite/css/parser/color.errors +++ b/testsuite/css/parser/color.errors @@ -1 +1,6 @@ +color.css:52:10-18: error: GTK_CSS_PARSER_WARNING_DEPRECATED +color.css:56:10-17: error: GTK_CSS_PARSER_WARNING_DEPRECATED +color.css:60:10-16: error: GTK_CSS_PARSER_WARNING_DEPRECATED +color.css:64:10-16: error: GTK_CSS_PARSER_WARNING_DEPRECATED +color.css:68:10-14: error: GTK_CSS_PARSER_WARNING_DEPRECATED color.css:72:10-18: error: GTK_CSS_PARSER_WARNING_DEPRECATED 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); +} diff --git a/testsuite/css/parser/currentcolor-everywhere.errors b/testsuite/css/parser/currentcolor-everywhere.errors index 7a6f44373f..21bcd6d8ad 100644 --- a/testsuite/css/parser/currentcolor-everywhere.errors +++ b/testsuite/css/parser/currentcolor-everywhere.errors @@ -1,2 +1,6 @@ +currentcolor-everywhere.css:8:10-16: error: GTK_CSS_PARSER_WARNING_DEPRECATED +currentcolor-everywhere.css:12:10-16: error: GTK_CSS_PARSER_WARNING_DEPRECATED +currentcolor-everywhere.css:16:10-14: error: GTK_CSS_PARSER_WARNING_DEPRECATED currentcolor-everywhere.css:16:28-39: error: GTK_CSS_PARSER_WARNING_DEPRECATED +currentcolor-everywhere.css:20:10-14: error: GTK_CSS_PARSER_WARNING_DEPRECATED currentcolor-everywhere.css:20:14-25: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/declarations-valid-09.errors b/testsuite/css/parser/declarations-valid-09.errors index 44846ae064..38cf2fefc4 100644 --- a/testsuite/css/parser/declarations-valid-09.errors +++ b/testsuite/css/parser/declarations-valid-09.errors @@ -1 +1,2 @@ +declarations-valid-09.css:1:35-41: error: GTK_CSS_PARSER_WARNING_DEPRECATED declarations-valid-09.css:1:41-50: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/parser/meson.build b/testsuite/css/parser/meson.build index 0dc39f1c34..5eb88deced 100644 --- a/testsuite/css/parser/meson.build +++ b/testsuite/css/parser/meson.build @@ -102,23 +102,30 @@ test_data = [ 'at-valid-06.css', 'at-valid-06.ref.css', 'at-valid-07.css', + 'at-valid-07.errors', 'at-valid-08.css', 'at-valid-08.ref.css', 'at-valid-09.css', 'at-valid-09.ref.css', 'at-valid-10.css', + 'at-valid-10.errors', 'at-valid-10.ref.css', 'at-valid-11.css', + 'at-valid-11.errors', 'at-valid-11.ref.css', 'at-valid-12.css', + 'at-valid-12.errors', 'at-valid-12.ref.css', 'at-valid-13.css', + 'at-valid-13.errors', 'at-valid-13.ref.css', 'at-valid-14.css', + 'at-valid-14.errors', 'at-valid-14.ref.css', 'at-valid-15.css', 'at-valid-15.ref.css', 'at-valid-16.css', + 'at-valid-16.errors', 'at-valid-16.ref.css', 'at-valid-17.css', 'at-valid-18.css', @@ -473,6 +480,9 @@ test_data = [ 'radial-positions.errors', 'radial-positions.ref.css', 'radial.ref.css', + 'relative-color.css', + 'relative-color.errors', + 'relative-color.ref.css', 'resource-url.css', 'resource-url.ref.css', 'rotate3d-crash.css', diff --git a/testsuite/css/parser/relative-color.css b/testsuite/css/parser/relative-color.css index 339724b5fe..f08c86867c 100644 --- a/testsuite/css/parser/relative-color.css +++ b/testsuite/css/parser/relative-color.css @@ -19,6 +19,46 @@ e { color: rgb(from darkgoldenrod r g 100 / 50%); } -e { +f { color: rgb(from rgba(30,40,50,60) r g 100 / alpha); } + +g { + color: rgb(from currentColor r g 100 / 50%); +} + +h { + color: rgb(from white 100% 100% 100% / 100%); +} + +i { + color: color(from white srgb 100% 100% 100% / 100%); +} + +j { + color: color(from white srgb-linear 100% 100% 100% / 100%); +} + +k { + color: hsl(from white 0 100% 100% / 100%); +} + +l { + color: hwb(from white 0 100% 0% / 100%); +} + +m { + color: hwb(from white 0 0% 100% / 100%); +} + +n { + color: oklch(from white 100% 100% 0 / 100%); +} + +o { + color: oklab(from white 100% 0% 0% / 100%); +} + +p { + color: oklab(from white 100% 100% 100% / 100%); +} diff --git a/testsuite/css/parser/relative-color.ref.css b/testsuite/css/parser/relative-color.ref.css index 195550d493..5a3f9f7fec 100644 --- a/testsuite/css/parser/relative-color.ref.css +++ b/testsuite/css/parser/relative-color.ref.css @@ -12,9 +12,49 @@ c { } e { - color: color(from rgb(184,134,11) srgb 184 134 100 / 50%); + color: color(srgb 0.721569 0.52549 0.392157 / 0.5); } -e { - color: rgb(30,40,100); +f { + color: color(srgb 0.117647 0.156863 0.392157); +} + +g { + color: color(from currentcolor srgb r g 100 / 50%); +} + +h { + color: color(srgb 1 1 1); +} + +i { + color: color(srgb 1 1 1); +} + +j { + color: color(srgb-linear 1 1 1); +} + +k { + color: color(srgb 1 1 1); +} + +l { + color: color(srgb 1 1 1); +} + +m { + color: color(srgb 0 0 0); +} + +n { + color: oklch(1 0.4 0); +} + +o { + color: oklab(1 -0.4 -0.4); +} + +p { + color: oklab(1 0.4 0.4); } diff --git a/testsuite/css/parser/shadow.errors b/testsuite/css/parser/shadow.errors index 3c0e52cd05..2f9013926f 100644 --- a/testsuite/css/parser/shadow.errors +++ b/testsuite/css/parser/shadow.errors @@ -1,12 +1,24 @@ +shadow.css:78:24-30: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:78:30-39: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:146:46-52: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:146:52-61: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:154:29-35: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:154:35-44: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:174:36-42: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:174:42-51: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:190:30-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:190:36-45: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:238:21-27: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:238:27-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:314:35-41: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:314:41-50: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:318:15-21: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:318:21-30: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:334:21-27: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:334:27-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:354:30-36: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:354:36-45: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:358:35-41: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:358:41-50: error: GTK_CSS_PARSER_WARNING_DEPRECATED +shadow.css:382:24-30: error: GTK_CSS_PARSER_WARNING_DEPRECATED shadow.css:382:30-39: error: GTK_CSS_PARSER_WARNING_DEPRECATED diff --git a/testsuite/css/transition.c b/testsuite/css/transition.c index 628ee3c10f..29295eb805 100644 --- a/testsuite/css/transition.c +++ b/testsuite/css/transition.c @@ -107,7 +107,7 @@ typedef struct { static ValueTransitionTest tests[] = { { GTK_CSS_PROPERTY_COLOR, "transparent", "rgb(255,0,0)", 0.25, "rgba(255,0,0,0.25)" }, - { GTK_CSS_PROPERTY_COLOR, "alpha(red, 0.2)", "alpha(rgb(255,0,0),0.8)", 0.5, "rgba(255,0,0,0.5)" }, + { GTK_CSS_PROPERTY_COLOR, "rgb(from red r g b / 0.2)", "rgb(from rgb(255,0,0) r g b / 0.8)", 0.5, "rgba(255,0,0,0.5)" }, { GTK_CSS_PROPERTY_BOX_SHADOW, "none", "2px 2px 10px 4px rgb(200,200,200)", 0.5, "1px 1px 5px 2px rgba(200,200,200,0.5)" }, { GTK_CSS_PROPERTY_BOX_SHADOW, "2px 2px 10px 4px rgb(200,200,200)", "none", 0.5, "1px 1px 5px 2px rgba(200,200,200,0.5)" }, { GTK_CSS_PROPERTY_BOX_SHADOW, "2px 2px 10px 4px rgb(200,200,200), 0px 10px 8px 6px rgb(200,100,0)", "none", 0.5, "1px 1px 5px 2px rgba(200,200,200,0.5), 0px 5px 4px 3px rgba(200,100,0,0.5)" },