diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-07-07 18:39:54 +0300 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-07-07 18:39:54 +0300 |
commit | fc1a21eafe14cd6c675d7a04da5a4fc7654565a1 (patch) | |
tree | 83de1e6c1eb8fdc251592050feb26fcdd8056727 /libmetacity | |
parent | 127638caa99b019551cc0f6bb6052c276de4926a (diff) | |
download | metacity-fc1a21eafe14cd6c675d7a04da5a4fc7654565a1.tar.gz |
libmetacity: fix gradients
Diffstat (limited to 'libmetacity')
-rw-r--r-- | libmetacity/meta-gradient-spec.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libmetacity/meta-gradient-spec.c b/libmetacity/meta-gradient-spec.c index bb6a98de..70affdd6 100644 --- a/libmetacity/meta-gradient-spec.c +++ b/libmetacity/meta-gradient-spec.c @@ -74,17 +74,23 @@ create_cairo_pattern_from_gradient_spec (const MetaGradientSpec *spec, meta_color_spec_render (tmp->data, context, &color); if (alpha_spec != NULL) - cairo_pattern_add_color_stop_rgba (pattern, i / (gfloat) n_colors, + cairo_pattern_add_color_stop_rgba (pattern, i / (gfloat) (n_colors - 1), color.red, color.green, color.blue, - alpha_spec->alphas[i]); + alpha_spec->alphas[i] / 255.0); else - cairo_pattern_add_color_stop_rgb (pattern, i / (gfloat) n_colors, + cairo_pattern_add_color_stop_rgb (pattern, i / (gfloat) (n_colors - 1), color.red, color.green, color.blue); tmp = tmp->next; ++i; } + if (cairo_pattern_status (pattern) != CAIRO_STATUS_SUCCESS) + { + cairo_pattern_destroy (pattern); + return NULL; + } + return pattern; } |