diff options
author | Federico I <git@federicoigne.com> | 2020-03-21 22:44:20 +0000 |
---|---|---|
committer | Federico I <git@federicoigne.com> | 2020-03-21 22:44:20 +0000 |
commit | 35befbb19e5c677c3183028338e27055814bbcd5 (patch) | |
tree | ed411b674f739a838b516e0d79fa77575bc98bb3 /x.c | |
parent | 82deff42852af0512111e76ac8392e14737dea65 (diff) | |
download | st-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.c | 40 |
1 files changed, 10 insertions, 30 deletions
@@ -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; | |||
245 | static double usedfontsize = 0; | 244 | static double usedfontsize = 0; |
246 | static double defaultfontsize = 0; | 245 | static double defaultfontsize = 0; |
247 | 246 | ||
248 | static char *opt_alpha = NULL; | ||
249 | static char *opt_class = NULL; | 247 | static char *opt_class = NULL; |
250 | static char **opt_cmd = NULL; | 248 | static char **opt_cmd = NULL; |
251 | static char *opt_embed = NULL; | 249 | static 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; |