summaryrefslogtreecommitdiff
path: root/src/entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/entry.c')
-rw-r--r--src/entry.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/entry.c b/src/entry.c
index 63b6f87..1f1a5b8 100644
--- a/src/entry.c
+++ b/src/entry.c
@@ -114,12 +114,21 @@ void entry_init(struct entry *entry, uint32_t scale)
entry->pangocairo.surface = surface;
entry->pangocairo.cr = cr;
+ entry->pangocairo.context = context;
entry->pangocairo.layout = layout;
entry->image.width = entry->surface.width;
entry->image.height = entry->surface.height;
entry->image.buffer = cairo_image_surface_get_data(surface);
}
+void entry_destroy(struct entry *entry)
+{
+ g_object_unref(entry->pangocairo.layout);
+ g_object_unref(entry->pangocairo.context);
+ cairo_destroy(entry->pangocairo.cr);
+ cairo_surface_destroy(entry->pangocairo.surface);
+}
+
void entry_update(struct entry *entry)
{
cairo_t *cr = entry->pangocairo.cr;
@@ -176,9 +185,10 @@ void calculate_font_extents(struct entry *entry, uint32_t scale)
PangoFont *font =
pango_context_load_font(context, font_description);
PangoFontDescription *desc = pango_font_describe(font);
- log_debug("Using font: %s\n",
- pango_font_description_to_string(desc));
+ char *string = pango_font_description_to_string(desc);
+ log_debug("Using font: %s\n", string);
+ g_free(string);
pango_font_description_free(desc);
g_object_unref(font);
}