do not truncate font size when zooming - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit bdd649a10289ade364f3deab3bbf6ee3169d67ca
 (DIR) parent 71fa10f613a22b3e75e0e897ee1be6667be3f449
 (HTM) Author: Quentin Rameau <quinq@quinq.eu.org>
       Date:   Sun, 31 May 2015 12:26:11 +0200
       
       do not truncate font size when zooming
       
       Diffstat:
         M config.def.h                        |       6 +++---
         M st.c                                |      15 +++++++--------
       
       2 files changed, 10 insertions(+), 11 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       @@ -120,9 +120,9 @@ static Shortcut shortcuts[] = {
                { ControlMask,          XK_Print,       toggleprinter,  {.i =  0} },
                { ShiftMask,            XK_Print,       printscreen,    {.i =  0} },
                { XK_ANY_MOD,           XK_Print,       printsel,       {.i =  0} },
       -        { MODKEY|ShiftMask,     XK_Prior,       xzoom,          {.i = +1} },
       -        { MODKEY|ShiftMask,     XK_Next,        xzoom,          {.i = -1} },
       -        { MODKEY|ShiftMask,     XK_Home,        xzoomreset,     {.i =  0} },
       +        { MODKEY|ShiftMask,     XK_Prior,       xzoom,          {.f = +1} },
       +        { MODKEY|ShiftMask,     XK_Next,        xzoom,          {.f = -1} },
       +        { MODKEY|ShiftMask,     XK_Home,        xzoomreset,     {.f =  0} },
                { ShiftMask,            XK_Insert,      selpaste,       {.i =  0} },
                { MODKEY|ShiftMask,     XK_Insert,      clippaste,      {.i =  0} },
                { MODKEY|ShiftMask,     XK_C,           clipcopy,       {.i =  0} },
 (DIR) diff --git a/st.c b/st.c
       @@ -3061,7 +3061,6 @@ xloadfont(Font *f, FcPattern *pattern) {
        void
        xloadfonts(char *fontstr, double fontsize) {
                FcPattern *pattern;
       -        FcResult r_sz, r_psz;
                double fontval;
                float ceilf(float);
        
       @@ -3080,11 +3079,11 @@ xloadfonts(char *fontstr, double fontsize) {
                        FcPatternAddDouble(pattern, FC_PIXEL_SIZE, (double)fontsize);
                        usedfontsize = fontsize;
                } else {
       -                r_psz = FcPatternGetDouble(pattern, FC_PIXEL_SIZE, 0, &fontval);
       -                r_sz = FcPatternGetDouble(pattern, FC_SIZE, 0, &fontval);
       -                if(r_psz == FcResultMatch) {
       +                if(FcPatternGetDouble(pattern, FC_PIXEL_SIZE, 0, &fontval) ==
       +                                FcResultMatch) {
                                usedfontsize = fontval;
       -                } else if(r_sz == FcResultMatch) {
       +                } else if(FcPatternGetDouble(pattern, FC_SIZE, 0, &fontval) ==
       +                                FcResultMatch) {
                                usedfontsize = -1;
                        } else {
                                /*
       @@ -3157,14 +3156,14 @@ void
        xzoom(const Arg *arg) {
                Arg larg;
        
       -        larg.i = usedfontsize + arg->i;
       +        larg.f = usedfontsize + arg->f;
                xzoomabs(&larg);
        }
        
        void
        xzoomabs(const Arg *arg) {
                xunloadfonts();
       -        xloadfonts(usedfont, arg->i);
       +        xloadfonts(usedfont, arg->f);
                cresize(0, 0);
                redraw();
                xhints();
       @@ -3175,7 +3174,7 @@ xzoomreset(const Arg *arg) {
                Arg larg;
        
                if(defaultfontsize > 0) {
       -                larg.i = defaultfontsize;
       +                larg.f = defaultfontsize;
                        xzoomabs(&larg);
                }
        }