From 45f7df034f85fba2ddcf7fd0027d16f62a09e236 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Thu, 10 Jan 2013 10:43:11 +0000 Subject: [PATCH] Corrigindo problema no sublinhado... --- draw.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+), 0 deletions(-) diff --git a/draw.c b/draw.c index 2d78191..c1490e4 100644 --- a/draw.c +++ b/draw.c @@ -119,6 +119,28 @@ void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H32 get_element_colors(attr,&fg,&bg,color); v3270_draw_char(cr,chr,attr,session,height,rect,fg,bg); + + if(attr & LIB3270_ATTR_UNDERLINE) + { + cairo_scaled_font_t * font = cairo_get_scaled_font(cr); + cairo_font_extents_t extents; + double sl; + + cairo_scaled_font_extents(font,&extents); + + sl = extents.descent/3; + if(sl < 1) + sl = 1; + + gdk_cairo_set_source_color(cr,fg); + + cairo_rectangle(cr,rect->x,rect->y+sl+extents.ascent+(extents.descent/2),rect->width,sl); + cairo_fill(cr); + + cairo_stroke(cr); + } + + } void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkColor *fg, GdkColor *bg) @@ -262,6 +284,7 @@ void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 g_free(utf); } } + cairo_stroke(cr); } -- libgit2 0.21.2