From 51054c3a9e4e57d457e659b0b2c929605a257245 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 --- src/pw3270/v3270/widget.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/pw3270/v3270/widget.c b/src/pw3270/v3270/widget.c index 9a00240..a92cdd3 100644 --- a/src/pw3270/v3270/widget.c +++ b/src/pw3270/v3270/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