Store the screen's visual type and colormap.

This commit is contained in:
okan 2018-02-13 15:43:15 +00:00
parent 13763662c9
commit b1929b5ed6
3 changed files with 10 additions and 7 deletions

View File

@ -223,6 +223,8 @@ struct screen_ctx {
struct region_q regionq; struct region_q regionq;
struct group_q groupq; struct group_q groupq;
struct group_ctx *group_active; struct group_ctx *group_active;
Colormap colormap;
Visual *visual;
struct { struct {
Window win; Window win;
XftDraw *xftdraw; XftDraw *xftdraw;

13
conf.c
View File

@ -451,8 +451,6 @@ conf_screen(struct screen_ctx *sc)
{ {
unsigned int i; unsigned int i;
XftColor xc; XftColor xc;
Colormap colormap = DefaultColormap(X_Dpy, sc->which);
Visual *visual = DefaultVisual(X_Dpy, sc->which);
sc->gap = Conf.gap; sc->gap = Conf.gap;
sc->snapdist = Conf.snapdist; sc->snapdist = Conf.snapdist;
@ -469,18 +467,18 @@ conf_screen(struct screen_ctx *sc)
xu_xorcolor(sc->xftcolor[CWM_COLOR_MENU_BG], xu_xorcolor(sc->xftcolor[CWM_COLOR_MENU_BG],
sc->xftcolor[CWM_COLOR_MENU_FG], &xc); sc->xftcolor[CWM_COLOR_MENU_FG], &xc);
xu_xorcolor(sc->xftcolor[CWM_COLOR_MENU_FONT], xc, &xc); xu_xorcolor(sc->xftcolor[CWM_COLOR_MENU_FONT], xc, &xc);
if (!XftColorAllocValue(X_Dpy, visual, colormap, if (!XftColorAllocValue(X_Dpy, sc->visual, sc->colormap,
&xc.color, &sc->xftcolor[CWM_COLOR_MENU_FONT_SEL])) &xc.color, &sc->xftcolor[CWM_COLOR_MENU_FONT_SEL]))
warnx("XftColorAllocValue: %s", Conf.color[i]); warnx("XftColorAllocValue: %s", Conf.color[i]);
break; break;
} }
if (XftColorAllocName(X_Dpy, visual, colormap, if (XftColorAllocName(X_Dpy, sc->visual, sc->colormap,
Conf.color[i], &xc)) { Conf.color[i], &xc)) {
sc->xftcolor[i] = xc; sc->xftcolor[i] = xc;
XftColorFree(X_Dpy, visual, colormap, &xc); XftColorFree(X_Dpy, sc->visual, sc->colormap, &xc);
} else { } else {
warnx("XftColorAllocName: %s", Conf.color[i]); warnx("XftColorAllocName: %s", Conf.color[i]);
XftColorAllocName(X_Dpy, visual, colormap, XftColorAllocName(X_Dpy, sc->visual, sc->colormap,
color_binds[i], &sc->xftcolor[i]); color_binds[i], &sc->xftcolor[i]);
} }
} }
@ -490,7 +488,8 @@ conf_screen(struct screen_ctx *sc)
sc->xftcolor[CWM_COLOR_MENU_FG].pixel, sc->xftcolor[CWM_COLOR_MENU_FG].pixel,
sc->xftcolor[CWM_COLOR_MENU_BG].pixel); sc->xftcolor[CWM_COLOR_MENU_BG].pixel);
sc->menu.xftdraw = XftDrawCreate(X_Dpy, sc->menu.win, visual, colormap); sc->menu.xftdraw = XftDrawCreate(X_Dpy, sc->menu.win,
sc->visual, sc->colormap);
if (sc->menu.xftdraw == NULL) if (sc->menu.xftdraw == NULL)
errx(1, "%s: XftDrawCreate", __func__); errx(1, "%s: XftDrawCreate", __func__);

View File

@ -50,6 +50,8 @@ screen_init(int which)
sc->which = which; sc->which = which;
sc->rootwin = RootWindow(X_Dpy, sc->which); sc->rootwin = RootWindow(X_Dpy, sc->which);
sc->colormap = DefaultColormap(X_Dpy, sc->which);
sc->visual = DefaultVisual(X_Dpy, sc->which);
sc->cycling = 0; sc->cycling = 0;
sc->hideall = 0; sc->hideall = 0;