summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Rameau2015-05-31 12:26:11 +0200
committerRoberto E. Vargas Caballero2015-06-19 11:49:13 +0200
commitbdd649a10289ade364f3deab3bbf6ee3169d67ca (patch)
tree36b8019d0d2dc154d0fe646c7894ea32675c744e
parent71fa10f613a22b3e75e0e897ee1be6667be3f449 (diff)
downloadst-bdd649a10289ade364f3deab3bbf6ee3169d67ca.tar.gz
st-bdd649a10289ade364f3deab3bbf6ee3169d67ca.tar.xz
st-bdd649a10289ade364f3deab3bbf6ee3169d67ca.zip
do not truncate font size when zooming
-rw-r--r--config.def.h6
-rw-r--r--st.c15
2 files changed, 10 insertions, 11 deletions
diff --git a/config.def.h b/config.def.h
index bb5596e..64e75b8 100644
--- 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} },
diff --git a/st.c b/st.c
index 3dd5caf..bb64c55 100644
--- 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);
}
}