libeek: fix memory leak

This commit is contained in:
Daiki Ueno
2010-06-22 16:59:57 +09:00
parent 9aabdc0812
commit e604e6af22
2 changed files with 5 additions and 0 deletions

View File

@ -99,9 +99,12 @@ egf_key_callback (EekElement *element,
eek_element_get_bounds (EEK_ELEMENT(key), &bounds); eek_element_get_bounds (EEK_ELEMENT(key), &bounds);
label = eek_keysym_to_string (keysym); label = eek_keysym_to_string (keysym);
if (!label)
return;
font_size = get_font_size (label, &bounds, data->layout); font_size = get_font_size (label, &bounds, data->layout);
if (font_size < data->font_size && font_size >= data->minimum_font_size) if (font_size < data->font_size && font_size >= data->minimum_font_size)
data->font_size = font_size; data->font_size = font_size;
g_free (label);
} }
static void static void
@ -242,6 +245,7 @@ eek_draw_key_label (cairo_t *cr,
(bounds.width - logical_rect.width / PANGO_SCALE) / 2, (bounds.width - logical_rect.width / PANGO_SCALE) / 2,
(bounds.height - logical_rect.height / PANGO_SCALE) / 2); (bounds.height - logical_rect.height / PANGO_SCALE) / 2);
pango_cairo_show_layout (cr, layout); pango_cairo_show_layout (cr, layout);
g_free (label);
g_object_unref (layout); g_object_unref (layout);
} }

View File

@ -302,6 +302,7 @@ on_expose_event (GtkWidget *widget,
base_font = gtk_widget_get_style (priv->widget)->font_desc; base_font = gtk_widget_get_style (priv->widget)->font_desc;
pango_layout_set_font_description (layout, base_font); pango_layout_set_font_description (layout, base_font);
eek_get_fonts (EEK_KEYBOARD(keyboard), layout, priv->fonts); eek_get_fonts (EEK_KEYBOARD(keyboard), layout, priv->fonts);
g_object_unref (layout);
prepare_keyboard_pixmap (keyboard); prepare_keyboard_pixmap (keyboard);
} }