aboutsummaryrefslogtreecommitdiff
path: root/src/canvas.c
diff options
context:
space:
mode:
authorHarry Jeffery <harry@exec64.co.uk>2019-09-02 15:03:33 +0100
committerHarry Jeffery <harry@exec64.co.uk>2019-09-02 15:54:50 +0100
commit42a15b157827dbd9c981416c8919ce5f5c907331 (patch)
tree31786a1a4bf6e67beced6533b9eb276f8a8ce3d8 /src/canvas.c
parentb8395af887ec1c3a3adfd8d56baa12caed740172 (diff)
downloadimv-42a15b157827dbd9c981416c8919ce5f5c907331.tar.gz
console: Use icu to provide proper UTF-8 editing
Diffstat (limited to 'src/canvas.c')
-rw-r--r--src/canvas.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/canvas.c b/src/canvas.c
index 4a00dbc..eaec538 100644
--- a/src/canvas.c
+++ b/src/canvas.c
@@ -127,7 +127,7 @@ void imv_canvas_font(struct imv_canvas *canvas, const char *name, int size)
pango_font_description_set_absolute_size(canvas->font, size * PANGO_SCALE);
}
-void imv_canvas_printf(struct imv_canvas *canvas, int x, int y, const char *fmt, ...)
+int imv_canvas_printf(struct imv_canvas *canvas, int x, int y, const char *fmt, ...)
{
char line[1024];
va_list args;
@@ -140,9 +140,14 @@ void imv_canvas_printf(struct imv_canvas *canvas, int x, int y, const char *fmt,
cairo_move_to(canvas->cairo, x, y);
pango_cairo_show_layout(canvas->cairo, layout);
+
+ PangoRectangle extents;
+ pango_layout_get_pixel_extents(layout, NULL, &extents);
+
g_object_unref(layout);
va_end(args);
+ return extents.width;
}
void imv_canvas_draw(struct imv_canvas *canvas)