aboutsummaryrefslogtreecommitdiff
path: root/x.c
diff options
context:
space:
mode:
authorFederico I <git@federicoigne.com>2020-03-21 22:44:20 +0000
committerFederico I <git@federicoigne.com>2020-03-21 22:44:20 +0000
commit35befbb19e5c677c3183028338e27055814bbcd5 (patch)
treeed411b674f739a838b516e0d79fa77575bc98bb3 /x.c
parent82deff42852af0512111e76ac8392e14737dea65 (diff)
downloadst-35befbb19e5c677c3183028338e27055814bbcd5.tar.gz
st-35befbb19e5c677c3183028338e27055814bbcd5.zip
Revert Alpha patch
While the patch works fine and embedding issues have been fixed in the latest patch (0.8.2), it breaks embedding for other programs like dmenu and sxiw. Also, in the end, I prefer an opaque background.
Diffstat (limited to 'x.c')
-rw-r--r--x.c40
1 files changed, 10 insertions, 30 deletions
diff --git a/x.c b/x.c
index 5afa802..57f6f1b 100644
--- a/x.c
+++ b/x.c
@@ -105,7 +105,6 @@ typedef struct {
105 XSetWindowAttributes attrs; 105 XSetWindowAttributes attrs;
106 int scr; 106 int scr;
107 int isfixed; /* is fixed geometry? */ 107 int isfixed; /* is fixed geometry? */
108 int depth; /* bit depth */
109 int l, t; /* left and top offset */ 108 int l, t; /* left and top offset */
110 int gm; /* geometry mask */ 109 int gm; /* geometry mask */
111} XWindow; 110} XWindow;
@@ -245,7 +244,6 @@ static char *usedfont = NULL;
245static double usedfontsize = 0; 244static double usedfontsize = 0;
246static double defaultfontsize = 0; 245static double defaultfontsize = 0;
247 246
248static char *opt_alpha = NULL;
249static char *opt_class = NULL; 247static char *opt_class = NULL;
250static char **opt_cmd = NULL; 248static char **opt_cmd = NULL;
251static char *opt_embed = NULL; 249static char *opt_embed = NULL;
@@ -724,7 +722,7 @@ xresize(int col, int row)
724 722
725 XFreePixmap(xw.dpy, xw.buf); 723 XFreePixmap(xw.dpy, xw.buf);
726 xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h, 724 xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
727 xw.depth); 725 DefaultDepth(xw.dpy, xw.scr));
728 XftDrawChange(xw.draw, xw.buf); 726 XftDrawChange(xw.draw, xw.buf);
729 xclear(0, 0, win.w, win.h); 727 xclear(0, 0, win.w, win.h);
730 728
@@ -784,13 +782,6 @@ xloadcols(void)
784 else 782 else
785 die("could not allocate color %d\n", i); 783 die("could not allocate color %d\n", i);
786 } 784 }
787
788 /* set alpha value of bg color */
789 if (opt_alpha)
790 alpha = strtof(opt_alpha, NULL);
791 dc.col[defaultbg].color.alpha = (unsigned short)(0xffff * alpha);
792 dc.col[defaultbg].pixel &= 0x00FFFFFF;
793 dc.col[defaultbg].pixel |= (unsigned char)(0xff * alpha) << 24;
794 loaded = 1; 785 loaded = 1;
795} 786}
796 787
@@ -1196,23 +1187,11 @@ xinit(int cols, int rows)
1196 Window parent; 1187 Window parent;
1197 pid_t thispid = getpid(); 1188 pid_t thispid = getpid();
1198 XColor xmousefg, xmousebg; 1189 XColor xmousefg, xmousebg;
1199 XWindowAttributes attr;
1200 XVisualInfo vis;
1201 1190
1202 if (!(xw.dpy = XOpenDisplay(NULL))) 1191 if (!(xw.dpy = XOpenDisplay(NULL)))
1203 die("can't open display\n"); 1192 die("can't open display\n");
1204 xw.scr = XDefaultScreen(xw.dpy); 1193 xw.scr = XDefaultScreen(xw.dpy);
1205 1194 xw.vis = XDefaultVisual(xw.dpy, xw.scr);
1206 if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0)))) {
1207 parent = XRootWindow(xw.dpy, xw.scr);
1208 xw.depth = 32;
1209 } else {
1210 XGetWindowAttributes(xw.dpy, parent, &attr);
1211 xw.depth = attr.depth;
1212 }
1213
1214 XMatchVisualInfo(xw.dpy, xw.scr, xw.depth, TrueColor, &vis);
1215 xw.vis = vis.visual;
1216 1195
1217 /* font */ 1196 /* font */
1218 if (!FcInit()) 1197 if (!FcInit())
@@ -1225,7 +1204,7 @@ xinit(int cols, int rows)
1225 xloadsparefonts(); 1204 xloadsparefonts();
1226 1205
1227 /* colors */ 1206 /* colors */
1228 xw.cmap = XCreateColormap(xw.dpy, parent, xw.vis, None); 1207 xw.cmap = XDefaultColormap(xw.dpy, xw.scr);
1229 xloadcols(); 1208 xloadcols();
1230 1209
1231 /* adjust fixed window geometry */ 1210 /* adjust fixed window geometry */
@@ -1245,15 +1224,19 @@ xinit(int cols, int rows)
1245 | ButtonMotionMask | ButtonPressMask | ButtonReleaseMask; 1224 | ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
1246 xw.attrs.colormap = xw.cmap; 1225 xw.attrs.colormap = xw.cmap;
1247 1226
1227 if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0))))
1228 parent = XRootWindow(xw.dpy, xw.scr);
1248 xw.win = XCreateWindow(xw.dpy, parent, xw.l, xw.t, 1229 xw.win = XCreateWindow(xw.dpy, parent, xw.l, xw.t,
1249 win.w, win.h, 0, xw.depth, InputOutput, 1230 win.w, win.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
1250 xw.vis, CWBackPixel | CWBorderPixel | CWBitGravity 1231 xw.vis, CWBackPixel | CWBorderPixel | CWBitGravity
1251 | CWEventMask | CWColormap, &xw.attrs); 1232 | CWEventMask | CWColormap, &xw.attrs);
1252 1233
1253 memset(&gcvalues, 0, sizeof(gcvalues)); 1234 memset(&gcvalues, 0, sizeof(gcvalues));
1254 gcvalues.graphics_exposures = False; 1235 gcvalues.graphics_exposures = False;
1255 xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h, xw.depth); 1236 dc.gc = XCreateGC(xw.dpy, parent, GCGraphicsExposures,
1256 dc.gc = XCreateGC(xw.dpy, xw.buf, GCGraphicsExposures, &gcvalues); 1237 &gcvalues);
1238 xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
1239 DefaultDepth(xw.dpy, xw.scr));
1257 XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel); 1240 XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel);
1258 XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, win.w, win.h); 1241 XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, win.w, win.h);
1259 1242
@@ -2098,9 +2081,6 @@ main(int argc, char *argv[])
2098 case 'a': 2081 case 'a':
2099 allowaltscreen = 0; 2082 allowaltscreen = 0;
2100 break; 2083 break;
2101 case 'A':
2102 opt_alpha = EARGF(usage());
2103 break;
2104 case 'c': 2084 case 'c':
2105 opt_class = EARGF(usage()); 2085 opt_class = EARGF(usage());
2106 break; 2086 break;