Call xsetenv() in main process instead of child
[st.git] / x.c
diff --git a/x.c b/x.c
index 191e5dc..df2a88c 100644 (file)
--- a/x.c
+++ b/x.c
@@ -89,6 +89,7 @@ static void xdrawcursor(void);
 static int xgeommasktogravity(int);
 static int xloadfont(Font *, FcPattern *);
 static void xunloadfont(Font *);
+static void xsetenv(void);
 
 static void expose(XEvent *);
 static void visibility(XEvent *);
@@ -1189,20 +1190,22 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i
                }
        }
 
-       if (base.mode & ATTR_REVERSE) {
-               temp = fg;
-               fg = bg;
-               bg = temp;
-       }
-
        if ((base.mode & ATTR_BOLD_FAINT) == ATTR_FAINT) {
                colfg.red = fg->color.red / 2;
                colfg.green = fg->color.green / 2;
                colfg.blue = fg->color.blue / 2;
+               colfg.alpha = fg->color.alpha;
                XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colfg, &revfg);
                fg = &revfg;
        }
 
+
+       if (base.mode & ATTR_REVERSE) {
+               temp = fg;
+               fg = bg;
+               bg = temp;
+       }
+
        if (base.mode & ATTR_BLINK && term.mode & MODE_BLINK)
                fg = bg;
 
@@ -1485,12 +1488,6 @@ xbell(int vol)
        XkbBell(xw.dpy, xw.win, vol, (Atom)NULL);
 }
 
-unsigned long
-xwinid(void)
-{
-       return xw.win;
-}
-
 void
 focus(XEvent *ev)
 {
@@ -1763,6 +1760,7 @@ run:
        XSetLocaleModifiers("");
        tnew(MAX(cols, 1), MAX(rows, 1));
        xinit();
+       xsetenv();
        selinit();
        run();