Fix the last commit.

This commit is contained in:
Daiki Ueno
2011-03-04 19:04:39 +09:00
parent 37c2579253
commit d66318a031
3 changed files with 16 additions and 19 deletions

View File

@ -208,7 +208,6 @@ render_key_outline (EekRenderer *renderer,
EekRendererPrivate *priv = EEK_RENDERER_GET_PRIVATE(renderer); EekRendererPrivate *priv = EEK_RENDERER_GET_PRIVATE(renderer);
EekOutline *outline; EekOutline *outline;
EekBounds bounds; EekBounds bounds;
cairo_pattern_t *pat;
gdouble scale; gdouble scale;
gint i; gint i;
gulong oref; gulong oref;
@ -243,6 +242,8 @@ render_key_outline (EekRenderer *renderer,
EEK_ELEMENT(key)); EEK_ELEMENT(key));
if (gradient) { if (gradient) {
cairo_pattern_t *pat;
switch (gradient->type) { switch (gradient->type) {
case EEK_GRADIENT_VERTICAL: case EEK_GRADIENT_VERTICAL:
pat = cairo_pattern_create_linear (bounds.width / 2 * priv->scale, pat = cairo_pattern_create_linear (bounds.width / 2 * priv->scale,
@ -277,11 +278,13 @@ render_key_outline (EekRenderer *renderer,
gradient->start->alpha); gradient->start->alpha);
cairo_pattern_add_color_stop_rgba (pat, cairo_pattern_add_color_stop_rgba (pat,
0, 0,
gradient->stop->red, gradient->end->red,
gradient->stop->green, gradient->end->green,
gradient->stop->blue, gradient->end->blue,
gradient->stop->alpha); gradient->end->alpha);
eek_gradient_free (gradient);
cairo_set_source (cr, pat); cairo_set_source (cr, pat);
cairo_pattern_destroy (pat);
} else { } else {
cairo_set_source_rgba (cr, cairo_set_source_rgba (cr,
background->red, background->red,
@ -296,8 +299,6 @@ render_key_outline (EekRenderer *renderer,
outline->num_points); outline->num_points);
cairo_fill (cr); cairo_fill (cr);
cairo_pattern_destroy (pat);
/* paint the border - FIXME: should be configured through theme */ /* paint the border - FIXME: should be configured through theme */
cairo_set_line_width (cr, priv->border_width); cairo_set_line_width (cr, priv->border_width);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND); cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
@ -319,9 +320,6 @@ render_key_outline (EekRenderer *renderer,
eek_color_free (foreground); eek_color_free (foreground);
eek_color_free (background); eek_color_free (background);
if (gradient)
eek_gradient_free (gradient);
} }
struct _CalculateFontSizeCallbackData { struct _CalculateFontSizeCallbackData {

View File

@ -239,14 +239,14 @@ eek_gradient_get_type (void)
EekGradient * EekGradient *
eek_gradient_new (EekGradientType type, eek_gradient_new (EekGradientType type,
EekColor *start, EekColor *start,
EekColor *stop) EekColor *end)
{ {
EekGradient *gradient; EekGradient *gradient;
gradient = g_slice_new (EekGradient); gradient = g_slice_new (EekGradient);
gradient->type = type; gradient->type = type;
gradient->start = eek_color_copy (start); gradient->start = eek_color_copy (start);
gradient->stop = eek_color_copy (stop); gradient->end = eek_color_copy (end);
return gradient; return gradient;
} }
@ -254,14 +254,13 @@ eek_gradient_new (EekGradientType type,
EekGradient * EekGradient *
eek_gradient_copy (const EekGradient *gradient) eek_gradient_copy (const EekGradient *gradient)
{ {
return eek_gradient_new (gradient->type, gradient->start, gradient->stop); return eek_gradient_new (gradient->type, gradient->start, gradient->end);
} }
void void
eek_gradient_free (EekGradient *gradient) eek_gradient_free (EekGradient *gradient)
{ {
if (gradient->start) eek_color_free (gradient->start);
eek_color_free (gradient->start); eek_color_free (gradient->end);
if (gradient->stop) g_slice_free (EekGradient, gradient);
eek_color_free (gradient->stop);
} }

View File

@ -266,7 +266,7 @@ struct _EekGradient
{ {
EekGradientType type; EekGradientType type;
EekColor *start; EekColor *start;
EekColor *stop; EekColor *end;
}; };
typedef struct _EekGradient EekGradient; typedef struct _EekGradient EekGradient;
@ -274,7 +274,7 @@ GType eek_gradient_get_type (void) G_GNUC_CONST;
EekGradient *eek_gradient_new (EekGradientType type, EekGradient *eek_gradient_new (EekGradientType type,
EekColor *start, EekColor *start,
EekColor *stop); EekColor *end);
EekGradient *eek_gradient_copy (const EekGradient *gradient); EekGradient *eek_gradient_copy (const EekGradient *gradient);
void eek_gradient_free (EekGradient *gradient); void eek_gradient_free (EekGradient *gradient);