aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Lohmann <20h@r-36.net>2013-05-11 21:59:55 +0200
committerChristoph Lohmann <20h@r-36.net>2013-05-11 21:59:55 +0200
commit8f47c4a4dea7272d72833d2ae26eacc3896d8f5c (patch)
treeab549898f8256fa2dccea92d4fa0b2f063c261d0
parent62502a88e94dd908fdd4418899afdd09a4de3bea (diff)
downloadst-8f47c4a4dea7272d72833d2ae26eacc3896d8f5c.tar.gz
st-8f47c4a4dea7272d72833d2ae26eacc3896d8f5c.zip
Lazy font unloading too.
-rw-r--r--st.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/st.c b/st.c
index 56955a3..8475878 100644
--- a/st.c
+++ b/st.c
@@ -369,6 +369,7 @@ static void xresettitle(void);
369static void xseturgency(int); 369static void xseturgency(int);
370static void xsetsel(char*); 370static void xsetsel(char*);
371static void xtermclear(int, int, int, int); 371static void xtermclear(int, int, int, int);
372static void xunloadfont(Font *f);
372static void xunloadfonts(void); 373static void xunloadfonts(void);
373static void xresize(int, int); 374static void xresize(int, int);
374 375
@@ -2734,6 +2735,14 @@ xloadfontset(Font *f) {
2734} 2735}
2735 2736
2736void 2737void
2738xunloadfont(Font *f) {
2739 XftFontClose(xw.dpy, f->match);
2740 FcPatternDestroy(f->pattern);
2741 if(f->set)
2742 FcFontSetDestroy(f->set);
2743}
2744
2745void
2737xunloadfonts(void) { 2746xunloadfonts(void) {
2738 int i, ip; 2747 int i, ip;
2739 2748
@@ -2749,18 +2758,10 @@ xunloadfonts(void) {
2749 frccur = -1; 2758 frccur = -1;
2750 frclen = 0; 2759 frclen = 0;
2751 2760
2752 XftFontClose(xw.dpy, dc.font.match); 2761 xunloadfont(&dc.font);
2753 FcPatternDestroy(dc.font.pattern); 2762 xunloadfont(&dc.bfont);
2754 FcFontSetDestroy(dc.font.set); 2763 xunloadfont(&dc.ifont);
2755 XftFontClose(xw.dpy, dc.bfont.match); 2764 xunloadfont(&dc.ibfont);
2756 FcPatternDestroy(dc.bfont.pattern);
2757 FcFontSetDestroy(dc.bfont.set);
2758 XftFontClose(xw.dpy, dc.ifont.match);
2759 FcPatternDestroy(dc.ifont.pattern);
2760 FcFontSetDestroy(dc.ifont.set);
2761 XftFontClose(xw.dpy, dc.ibfont.match);
2762 FcPatternDestroy(dc.ibfont.pattern);
2763 FcFontSetDestroy(dc.ibfont.set);
2764} 2765}
2765 2766
2766void 2767void