From 21824db0f14e9f081615ff39ca3ad4c85a3da678 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Tue, 2 Oct 2012 02:26:32 +0000 Subject: [PATCH] Melhorando aproximacao na escala de fontes --- widget.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/widget.c b/widget.c index 9a00240..a92cdd3 100644 --- a/widget.c +++ b/widget.c @@ -533,10 +533,24 @@ void v3270_update_font_metrics(v3270 *terminal, cairo_t *cr, int width, int heig if(terminal->scaled_fonts) { - double w = ((double)width) / ((double)cols); + double w = ((double) width) / ((double)cols); double h = ((double) height) / ((double) (rows+2)); + double s = w < h ? w : h; - cairo_set_font_size(cr,w < h ? w : h); + cairo_set_font_size(cr,s); + cairo_font_extents(cr,&extents); + + while( HEIGHT_IN_PIXELS(terminal,(extents.height+extents.descent)) < height && WIDTH_IN_PIXELS(terminal,extents.max_x_advance) < width ) + { + s += 1.0; + cairo_set_font_size(cr,s); + cairo_font_extents(cr,&extents); + } + + s -= 1.0; + + cairo_set_font_size(cr,s < 1.0 ? 1.0 : s); + cairo_font_extents(cr,&extents); } else { -- libgit2 0.21.2