X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fx.c;h=6c5a11ecaf9cd22fd7e73284fa8d21c769a1f19d;hb=6f8b2845863e9071d7d630b270729d46423c1eb5;hp=e8bfaeb4ecd1c2e4576c0c0b9a1dabb880d14c6c;hpb=664e30903c88679724ad656f935fe18b2953e820;p=i3%2Fi3 diff --git a/src/x.c b/src/x.c index e8bfaeb4..6c5a11ec 100644 --- a/src/x.c +++ b/src/x.c @@ -307,7 +307,6 @@ void x_draw_decoration(Con *con) { p->con_deco_rect = con->deco_rect; p->background = config.client.background; p->con_is_leaf = con_is_leaf(con); - p->font = config.font.id; if (con->deco_render_params != NULL && (con->window == NULL || !con->window->name_x_changed) && @@ -408,25 +407,17 @@ void x_draw_decoration(Con *con) { xcb_poly_segment(conn, parent->pixmap, parent->pm_gc, 2, segments); /* 6: draw the title */ - uint32_t mask = XCB_GC_FOREGROUND | XCB_GC_BACKGROUND | XCB_GC_FONT; - uint32_t values[] = { p->color->text, p->color->background, config.font.id }; - xcb_change_gc(conn, parent->pm_gc, mask, values); - int text_offset_y = config.font.height + (con->deco_rect.height - config.font.height) / 2 - 1; + set_font_colors(parent->pm_gc, p->color->text, p->color->background); + int text_offset_y = (con->deco_rect.height - config.font.height) / 2; struct Window *win = con->window; if (win == NULL || win->name_x == NULL) { /* this is a non-leaf container, we need to make up a good description */ // TODO: use a good description instead of just "another container" - xcb_image_text_8( - conn, - strlen("another container"), - parent->pixmap, - parent->pm_gc, - con->deco_rect.x + 2, - con->deco_rect.y + text_offset_y, - "another container" - ); - + draw_text("another container", strlen("another container"), false, + parent->pixmap, parent->pm_gc, + con->deco_rect.x + 2, con->deco_rect.y + text_offset_y, + con->deco_rect.width - 2); goto copy_pixmaps; } @@ -447,26 +438,10 @@ void x_draw_decoration(Con *con) { //DLOG("indent_level = %d, indent_mult = %d\n", indent_level, indent_mult); int indent_px = (indent_level * 5) * indent_mult; - if (win->uses_net_wm_name) - xcb_image_text_16( - conn, - win->name_len, - parent->pixmap, - parent->pm_gc, - con->deco_rect.x + 2 + indent_px, - con->deco_rect.y + text_offset_y, - (xcb_char2b_t*)win->name_x - ); - else - xcb_image_text_8( - conn, - win->name_len, - parent->pixmap, - parent->pm_gc, - con->deco_rect.x + 2 + indent_px, - con->deco_rect.y + text_offset_y, - win->name_x - ); + draw_text(win->name_x, win->name_len, win->uses_net_wm_name, + parent->pixmap, parent->pm_gc, + con->deco_rect.x + 2 + indent_px, con->deco_rect.y + text_offset_y, + con->deco_rect.width - 2 - indent_px); copy_pixmaps: xcb_copy_area(conn, con->pixmap, con->frame, con->pm_gc, 0, 0, 0, 0, con->rect.width, con->rect.height);