st/icon-theme: Fix transparent colors in symbolic SVGs

When loading a symbolic SVG, the original file is wrapped in
a header that includes a generated stylesheet with the
appropriate colors, plus an overall opacity.

The opacity value is clamped to values between 0 and 1, which
directly matched the alpha field of the GdkRGBA type. However
since we moved to StIconColors/ClutterColor, the alpha field
is now in the range [0..255], any alpha value other than 0 now
results in full opacity.

To fix, translate the [0..255] integer into a [0..1] double
before using it as opacity.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2731>
This commit is contained in:
Florian Müllner 2023-04-05 16:02:29 +02:00 committed by Marge Bot
parent 8431e7ae51
commit 1ca5fc7de1

View File

@ -3802,7 +3802,7 @@ st_icon_info_load_symbolic_svg (StIconInfo *icon_info,
double alpha;
char alphastr[G_ASCII_DTOSTR_BUF_SIZE];
alpha = colors->foreground.alpha;
alpha = colors->foreground.alpha / 255.;
css_fg = color_to_string_noalpha (&colors->foreground);