int bar_font_legacy = 1;
char *bar_fonts;
XftColor bar_font_color;
+XftColor search_font_color;
struct passwd *pwd;
char *startup_exception;
unsigned int nr_exceptions = 0;
DefaultColormap(display, r->s->idx), &color, &bar_font_color))
warn("Xft error: unable to allocate color.");
+ PIXEL_TO_XRENDERCOLOR(r->s->c[SWM_S_COLOR_BAR].pixel, color);
+
+ if (!XftColorAllocValue(display, DefaultVisual(display, r->s->idx),
+ DefaultColormap(display, r->s->idx), &color, &search_font_color))
+ warn("Xft error: unable to allocate color.");
+
bar_height = bar_font->height + 2 * bar_border_width;
if (bar_height < 1)
struct ws_win *win = NULL;
struct search_window *sw = NULL;
xcb_window_t w;
- uint32_t wa[2];
+ uint32_t wa[3];
+ xcb_screen_t *screen;
int i, width, height;
char s[8];
FILE *lfile;
if ((lfile = fdopen(select_list_pipe[1], "w")) == NULL)
return;
+ if ((screen = get_screen(r->s->idx)) == NULL)
+ errx(1, "ERROR: can't get screen %d.", r->s->idx);
+
TAILQ_INIT(&search_wl);
i = 1;
w = xcb_generate_id(conn);
wa[0] = r->s->c[SWM_S_COLOR_FOCUS].pixel;
wa[1] = r->s->c[SWM_S_COLOR_UNFOCUS].pixel;
+ wa[2] = screen->default_colormap;
if (bar_font_legacy) {
XmbTextExtents(bar_fs, s, len, &l_ibox, &l_lbox);
height = bar_font->height + 4;
}
- xcb_create_window(conn, XCB_COPY_FROM_PARENT, w, win->id, 0, 0,
+ xcb_create_window(conn, screen->root_depth, w, win->id, 0, 0,
width, height, 1, XCB_WINDOW_CLASS_INPUT_OUTPUT,
- XCB_COPY_FROM_PARENT, XCB_CW_BACK_PIXEL |
- XCB_CW_BORDER_PIXEL, wa);
+ screen->root_visual, XCB_CW_BACK_PIXEL |
+ XCB_CW_BORDER_PIXEL | XCB_CW_COLORMAP, wa);
xcb_map_window(conn, w);
DefaultVisual(display, r->s->idx),
DefaultColormap(display, r->s->idx));
- XftDrawStringUtf8(draw, &bar_font_color, bar_font, 2,
+ XftDrawStringUtf8(draw, &search_font_color, bar_font, 2,
(HEIGHT(r->bar) + bar_font->height) / 2 -
bar_font->descent, (FcChar8 *)s, len);
if (screens[i].bar_gc != XCB_NONE)
xcb_free_gc(conn, screens[i].bar_gc);
- if (!bar_font_legacy)
+ if (!bar_font_legacy) {
XftColorFree(display, DefaultVisual(display, i),
DefaultColormap(display, i), &bar_font_color);
+ XftColorFree(display, DefaultVisual(display, i),
+ DefaultColormap(display, i), &search_font_color);
+ }
}
if (bar_font_legacy)