From: Benjamin Otte Date: Fri, 26 Jun 2015 18:53:39 +0000 (+0200) Subject: cssvalue: Special case resulting color for transparency X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~24^2~9264 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=142abce46a18ef09ca77ed581cf3b385671c9515;p=gtk4.git cssvalue: Special case resulting color for transparency Again, preparation for using premultiplied color transitions. --- diff --git a/gtk/gtkcssrgbavalue.c b/gtk/gtkcssrgbavalue.c index ee73a458f0..0b66f8a113 100644 --- a/gtk/gtkcssrgbavalue.c +++ b/gtk/gtkcssrgbavalue.c @@ -68,9 +68,16 @@ gtk_css_value_rgba_transition (GtkCssValue *start, progress = CLAMP (progress, 0, 1); result.alpha = transition (start->rgba.alpha, end->rgba.alpha, progress); - result.red = transition (start->rgba.red, end->rgba.red, progress); - result.green = transition (start->rgba.green, end->rgba.green, progress); - result.blue = transition (start->rgba.blue, end->rgba.blue, progress); + if (result.alpha <= 0.0) + { + result.red = result.green = result.blue = 0.0; + } + else + { + result.red = transition (start->rgba.red, end->rgba.red, progress); + result.green = transition (start->rgba.green, end->rgba.green, progress); + result.blue = transition (start->rgba.blue, end->rgba.blue, progress); + } return _gtk_css_rgba_value_new_from_rgba (&result); }