57
57
#define TAGMASK ((1 << LENGTH(tags)) - 1)
58
58
#define TEXTW (X ) (drw_text(drw, 0, 0, 0, 0, (X), 0) + drw->fonts[0]->h)
59
59
60
- #define OPAQUE 0xffU
61
-
62
60
/* enums */
63
61
enum { CurNormal , CurResize , CurMove , CurLast }; /* cursor */
64
62
enum { SchemeNorm , SchemeSel , SchemeLast }; /* color schemes */
@@ -237,7 +235,6 @@ static Monitor *wintomon(Window w);
237
235
static int xerror (Display * dpy , XErrorEvent * ee );
238
236
static int xerrordummy (Display * dpy , XErrorEvent * ee );
239
237
static int xerrorstart (Display * dpy , XErrorEvent * ee );
240
- static void xinitvisual ();
241
238
static void zoom (const Arg * arg );
242
239
243
240
/* variables */
@@ -273,11 +270,6 @@ static Drw *drw;
273
270
static Monitor * mons , * selmon ;
274
271
static Window root ;
275
272
276
- static int useargb = 0 ;
277
- static Visual * visual ;
278
- static int depth ;
279
- static Colormap cmap ;
280
-
281
273
/* configuration, allows nested code to access above variables */
282
274
#include "config.h"
283
275
@@ -1636,8 +1628,7 @@ setup(void)
1636
1628
sw = DisplayWidth (dpy , screen );
1637
1629
sh = DisplayHeight (dpy , screen );
1638
1630
root = RootWindow (dpy , screen );
1639
- xinitvisual ();
1640
- drw = drw_create (dpy , screen , root , sw , sh , visual , depth , cmap );
1631
+ drw = drw_create (dpy , screen , root , sw , sh );
1641
1632
drw_load_fonts (drw , fonts , LENGTH (fonts ));
1642
1633
if (!drw -> fontcount )
1643
1634
die ("no fonts could be loaded.\n" );
@@ -1661,12 +1652,12 @@ setup(void)
1661
1652
cursor [CurResize ] = drw_cur_create (drw , XC_sizing );
1662
1653
cursor [CurMove ] = drw_cur_create (drw , XC_fleur );
1663
1654
/* init appearance */
1664
- scheme [SchemeNorm ].border = drw_clr_create (drw , normbordercolor , borderalpha );
1665
- scheme [SchemeNorm ].bg = drw_clr_create (drw , normbgcolor , baralpha );
1666
- scheme [SchemeNorm ].fg = drw_clr_create (drw , normfgcolor , OPAQUE );
1667
- scheme [SchemeSel ].border = drw_clr_create (drw , selbordercolor , borderalpha );
1668
- scheme [SchemeSel ].bg = drw_clr_create (drw , selbgcolor , baralpha );
1669
- scheme [SchemeSel ].fg = drw_clr_create (drw , selfgcolor , OPAQUE );
1655
+ scheme [SchemeNorm ].border = drw_clr_create (drw , normbordercolor );
1656
+ scheme [SchemeNorm ].bg = drw_clr_create (drw , normbgcolor );
1657
+ scheme [SchemeNorm ].fg = drw_clr_create (drw , normfgcolor );
1658
+ scheme [SchemeSel ].border = drw_clr_create (drw , selbordercolor );
1659
+ scheme [SchemeSel ].bg = drw_clr_create (drw , selbgcolor );
1660
+ scheme [SchemeSel ].fg = drw_clr_create (drw , selfgcolor );
1670
1661
/* init bars */
1671
1662
updatebars ();
1672
1663
updatestatus ();
@@ -1899,17 +1890,15 @@ updatebars(void)
1899
1890
Monitor * m ;
1900
1891
XSetWindowAttributes wa = {
1901
1892
.override_redirect = True ,
1902
- .background_pixel = 0 ,
1903
- .border_pixel = 0 ,
1904
- .colormap = cmap ,
1893
+ .background_pixmap = ParentRelative ,
1905
1894
.event_mask = ButtonPressMask |ExposureMask
1906
1895
};
1907
1896
for (m = mons ; m ; m = m -> next ) {
1908
1897
if (m -> barwin )
1909
1898
continue ;
1910
- m -> barwin = XCreateWindow (dpy , root , m -> wx , m -> by , m -> ww , bh , 0 , depth ,
1911
- InputOutput , visual ,
1912
- CWOverrideRedirect |CWBackPixel | CWBorderPixel | CWColormap |CWEventMask , & wa );
1899
+ m -> barwin = XCreateWindow (dpy , root , m -> wx , m -> by , m -> ww , bh , 0 , DefaultDepth ( dpy , screen ) ,
1900
+ CopyFromParent , DefaultVisual ( dpy , screen ) ,
1901
+ CWOverrideRedirect |CWBackPixmap |CWEventMask , & wa );
1913
1902
XDefineCursor (dpy , m -> barwin , cursor [CurNormal ]-> cursor );
1914
1903
XMapRaised (dpy , m -> barwin );
1915
1904
}
@@ -2253,43 +2242,6 @@ xerrorstart(Display *dpy, XErrorEvent *ee)
2253
2242
return -1 ;
2254
2243
}
2255
2244
2256
- void
2257
- xinitvisual ()
2258
- {
2259
- XVisualInfo * infos ;
2260
- XRenderPictFormat * fmt ;
2261
- int nitems ;
2262
- int i ;
2263
-
2264
- XVisualInfo tpl = {
2265
- .screen = screen ,
2266
- .depth = 32 ,
2267
- .class = TrueColor
2268
- };
2269
- long masks = VisualScreenMask | VisualDepthMask | VisualClassMask ;
2270
-
2271
- infos = XGetVisualInfo (dpy , masks , & tpl , & nitems );
2272
- visual = NULL ;
2273
- for (i = 0 ; i < nitems ; i ++ ) {
2274
- fmt = XRenderFindVisualFormat (dpy , infos [i ].visual );
2275
- if (fmt -> type == PictTypeDirect && fmt -> direct .alphaMask ) {
2276
- visual = infos [i ].visual ;
2277
- depth = infos [i ].depth ;
2278
- cmap = XCreateColormap (dpy , root , visual , AllocNone );
2279
- useargb = 1 ;
2280
- break ;
2281
- }
2282
- }
2283
-
2284
- XFree (infos );
2285
-
2286
- if (! visual ) {
2287
- visual = DefaultVisual (dpy , screen );
2288
- depth = DefaultDepth (dpy , screen );
2289
- cmap = DefaultColormap (dpy , screen );
2290
- }
2291
- }
2292
-
2293
2245
void
2294
2246
zoom (const Arg * arg )
2295
2247
{
0 commit comments