diff options
author | Benjamin Otte <otte@redhat.com> | 2015-06-26 20:53:39 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-06-26 20:54:57 +0200 |
commit | 142abce46a18ef09ca77ed581cf3b385671c9515 (patch) | |
tree | 45704e1f20767b79c538c189a627b7febc7cc4b1 | |
parent | e3d8f03b3a69c0b1e1dea653ffeca34092be6ce8 (diff) | |
download | gtk+-142abce46a18ef09ca77ed581cf3b385671c9515.tar.gz |
cssvalue: Special case resulting color for transparency
Again, preparation for using premultiplied color transitions.
-rw-r--r-- | gtk/gtkcssrgbavalue.c | 13 |
1 files changed, 10 insertions, 3 deletions
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); } |