Commit 51054c3a9e4e57d457e659b0b2c929605a257245
1 parent
c72d7204
Exists in
master
and in
5 other branches
Melhorando aproximacao na escala de fontes
Showing
1 changed file
with
16 additions
and
2 deletions
Show diff stats
src/pw3270/v3270/widget.c
... | ... | @@ -533,10 +533,24 @@ void v3270_update_font_metrics(v3270 *terminal, cairo_t *cr, int width, int heig |
533 | 533 | |
534 | 534 | if(terminal->scaled_fonts) |
535 | 535 | { |
536 | - double w = ((double)width) / ((double)cols); | |
536 | + double w = ((double) width) / ((double)cols); | |
537 | 537 | double h = ((double) height) / ((double) (rows+2)); |
538 | + double s = w < h ? w : h; | |
538 | 539 | |
539 | - cairo_set_font_size(cr,w < h ? w : h); | |
540 | + cairo_set_font_size(cr,s); | |
541 | + cairo_font_extents(cr,&extents); | |
542 | + | |
543 | + while( HEIGHT_IN_PIXELS(terminal,(extents.height+extents.descent)) < height && WIDTH_IN_PIXELS(terminal,extents.max_x_advance) < width ) | |
544 | + { | |
545 | + s += 1.0; | |
546 | + cairo_set_font_size(cr,s); | |
547 | + cairo_font_extents(cr,&extents); | |
548 | + } | |
549 | + | |
550 | + s -= 1.0; | |
551 | + | |
552 | + cairo_set_font_size(cr,s < 1.0 ? 1.0 : s); | |
553 | + cairo_font_extents(cr,&extents); | |
540 | 554 | } |
541 | 555 | else |
542 | 556 | { | ... | ... |