Introduction
Introduction Statistics Contact Development Disclaimer Help
tImplementing xzoomreset. - st - [fork] customized build of st, the simple term…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit dc8c5c82aa14e75305bd5b0e42b4f8bba45702a8
parent c7a945c4086ab913cd8a05997bfbc1906645eff4
Author: Christoph Lohmann <[email protected]>
Date: Mon, 29 Sep 2014 15:38:21 +0200
Implementing xzoomreset.
Thanks [email protected] for proposing this.
Diffstat:
M config.def.h | 1 +
M st.c | 25 ++++++++++++++++++++++++-
2 files changed, 25 insertions(+), 1 deletion(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -116,6 +116,7 @@ static Shortcut shortcuts[] = {
{ 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} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ MODKEY|ShiftMask, XK_Insert, clippaste, {.i = 0} },
{ MODKEY, XK_Num_Lock, numlock, {.i = 0} },
diff --git a/st.c b/st.c
t@@ -317,6 +317,8 @@ static void clippaste(const Arg *);
static void numlock(const Arg *);
static void selpaste(const Arg *);
static void xzoom(const Arg *);
+static void xzoomabs(const Arg *);
+static void xzoomreset(const Arg *);
static void printsel(const Arg *);
static void printscreen(const Arg *) ;
static void toggleprinter(const Arg *);
t@@ -503,6 +505,7 @@ static int oldbutton = 3; /* button event on startup: 3 = …
static char *usedfont = NULL;
static double usedfontsize = 0;
+static double defaultfontsize = 0;
static uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0};
static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8};
t@@ -2993,6 +2996,7 @@ xloadfonts(char *fontstr, double fontsize) {
FcPatternAddDouble(pattern, FC_PIXEL_SIZE, 12);
usedfontsize = 12;
}
+ defaultfontsize = usedfontsize;
}
FcConfigSubstitute(0, pattern, FcMatchPattern);
t@@ -3005,6 +3009,8 @@ xloadfonts(char *fontstr, double fontsize) {
FcPatternGetDouble(dc.font.match->pattern,
FC_PIXEL_SIZE, 0, &fontval);
usedfontsize = fontval;
+ if(fontsize == 0)
+ defaultfontsize = fontval;
}
/* Setting character width and height. */
t@@ -3058,16 +3064,33 @@ xunloadfonts(void) {
xunloadfont(&dc.ibfont);
}
+
void
xzoom(const Arg *arg) {
+ Arg larg;
+ larg.i = usedfontsize + arg->i;
+ xzoomabs(&larg);
+}
+
+void
+xzoomabs(const Arg *arg) {
xunloadfonts();
- xloadfonts(usedfont, usedfontsize + arg->i);
+ xloadfonts(usedfont, arg->i);
cresize(0, 0);
redraw(0);
xhints();
}
void
+xzoomreset(const Arg *arg) {
+ Arg larg;
+ if(defaultfontsize > 0) {
+ larg.i = defaultfontsize;
+ xzoomabs(&larg);
+ }
+}
+
+void
xinit(void) {
XGCValues gcvalues;
Cursor cursor;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.