Merge branch 'master' of ssh://suckless.org/gitrepos/st

This commit is contained in:
Roberto E. Vargas Caballero 2014-03-10 15:16:26 +01:00
commit 71328cbcdc
1 changed files with 16 additions and 6 deletions

22
st.c
View File

@ -2887,7 +2887,8 @@ xhints(void) {
sizeh->min_height = sizeh->max_height = xw.fh; sizeh->min_height = sizeh->max_height = xw.fh;
} }
XSetWMProperties(xw.dpy, xw.win, NULL, NULL, NULL, 0, sizeh, &wm, &class); XSetWMProperties(xw.dpy, xw.win, NULL, NULL, NULL, 0, sizeh, &wm,
&class);
XFree(sizeh); XFree(sizeh);
} }
@ -3176,6 +3177,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
if(base.fg == defaultfg) if(base.fg == defaultfg)
base.fg = defaultunderline; base.fg = defaultunderline;
} }
if(IS_TRUECOL(base.fg)) { if(IS_TRUECOL(base.fg)) {
colfg.alpha = 0xffff; colfg.alpha = 0xffff;
colfg.red = TRUERED(base.fg); colfg.red = TRUERED(base.fg);
@ -3198,8 +3200,6 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
bg = &dc.col[base.bg]; bg = &dc.col[base.bg];
} }
if(base.mode & ATTR_BOLD) { if(base.mode & ATTR_BOLD) {
if(BETWEEN(base.fg, 0, 7)) { if(BETWEEN(base.fg, 0, 7)) {
/* basic system colors */ /* basic system colors */
@ -3229,7 +3229,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
colfg.green = ~fg->color.green; colfg.green = ~fg->color.green;
colfg.blue = ~fg->color.blue; colfg.blue = ~fg->color.blue;
colfg.alpha = fg->color.alpha; colfg.alpha = fg->color.alpha;
XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colfg, &revfg); XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colfg,
&revfg);
fg = &revfg; fg = &revfg;
} }
@ -3240,7 +3241,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
colbg.green = ~bg->color.green; colbg.green = ~bg->color.green;
colbg.blue = ~bg->color.blue; colbg.blue = ~bg->color.blue;
colbg.alpha = bg->color.alpha; colbg.alpha = bg->color.alpha;
XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colbg, &revbg); XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colbg,
&revbg);
bg = &revbg; bg = &revbg;
} }
} }
@ -3320,7 +3322,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
u8fblen += u8cblen; u8fblen += u8cblen;
} }
if(doesexist) { if(doesexist) {
if (oneatatime) if(oneatatime)
continue; continue;
break; break;
} }
@ -3343,6 +3345,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
* Nothing was found in the cache. Now use * Nothing was found in the cache. Now use
* some dozen of Fontconfig calls to get the * some dozen of Fontconfig calls to get the
* font for one single character. * font for one single character.
*
* Xft and fontconfig are design failures.
*/ */
fcpattern = FcPatternDuplicate(font->pattern); fcpattern = FcPatternDuplicate(font->pattern);
fccharset = FcCharSetCreate(); fccharset = FcCharSetCreate();
@ -3386,6 +3390,12 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
xp += xw.cw * wcwidth(u8char); xp += xw.cw * wcwidth(u8char);
} }
/*
* This is how the loop above actually should be. Why does the
* application have to care about font details?
*
* I have to repeat: Xft and Fontconfig are design failures.
*/
/* /*
XftDrawStringUtf8(xw.draw, fg, font->set, winx, XftDrawStringUtf8(xw.draw, fg, font->set, winx,
winy + font->ascent, (FcChar8 *)s, bytelen); winy + font->ascent, (FcChar8 *)s, bytelen);