cssimage: Warn if gradients only have 1 color stop

GTK <= 3.20 allowed that but the CSS spec and borwsers do not.
We might want to just remove that feature, but for now, we just warn.
This commit is contained in:
Benjamin Otte 2016-04-18 20:25:11 +02:00
parent fd373162b5
commit 519af3f91d
2 changed files with 16 additions and 0 deletions

View File

@ -352,6 +352,14 @@ gtk_css_image_linear_parse (GtkCssImage *image,
} while (_gtk_css_parser_try (parser, ",", TRUE));
if (linear->stops->len < 2)
{
_gtk_css_parser_error_full (parser,
GTK_CSS_PROVIDER_ERROR_DEPRECATED,
"Using one color stop with %s() is deprecated.",
linear->repeating ? "repeating-linear-gradient" : "linear-gradient");
}
if (!_gtk_css_parser_try (parser, ")", TRUE))
{
_gtk_css_parser_error (parser, "Missing closing bracket at end of linear gradient");

View File

@ -377,6 +377,14 @@ gtk_css_image_radial_parse (GtkCssImage *image,
} while (_gtk_css_parser_try (parser, ",", TRUE));
if (radial->stops->len < 2)
{
_gtk_css_parser_error_full (parser,
GTK_CSS_PROVIDER_ERROR_DEPRECATED,
"Using one color stop with %s() is deprecated.",
radial->repeating ? "repeating-radial-gradient" : "radial-gradient");
}
if (!_gtk_css_parser_try (parser, ")", TRUE))
{
_gtk_css_parser_error (parser, "Missing closing bracket at end of radial gradient");