free(event);
}
-static void x_draw_decoration_border(Con *con, struct deco_render_params *p) {
+static void x_draw_title_border(Con *con, struct deco_render_params *p) {
assert(con->parent != NULL);
Rect *dr = &(con->deco_rect);
}
/* Redraw the border. */
- x_draw_decoration_border(con, p);
+ x_draw_title_border(con, p);
}
/*
* rectangle because some childs are not freely resizable and we want
* their background color to "shine through". */
if (!(borders_to_hide & ADJ_LEFT_SCREEN_EDGE)) {
- draw_util_rectangle(conn, &(con->frame_buffer), p->color->background,
- 0, 0, br.x, r->height);
+ draw_util_rectangle(conn, &(con->frame_buffer), p->color->decoration_border, 0, 0, br.x, r->height);
}
if (!(borders_to_hide & ADJ_RIGHT_SCREEN_EDGE)) {
- draw_util_rectangle(conn, &(con->frame_buffer), p->color->background,
- r->width + (br.width + br.x), 0, -(br.width + br.x), r->height);
+ draw_util_rectangle(conn, &(con->frame_buffer),
+ p->color->decoration_border, r->width + (br.width + br.x), 0,
+ -(br.width + br.x), r->height);
}
if (!(borders_to_hide & ADJ_LOWER_SCREEN_EDGE)) {
- draw_util_rectangle(conn, &(con->frame_buffer), p->color->background,
- br.x, r->height + (br.height + br.y), r->width + br.width, -(br.height + br.y));
+ draw_util_rectangle(conn, &(con->frame_buffer),
+ p->color->decoration_border, br.x, r->height + (br.height +
+ br.y),
+ r->width + br.width, -(br.height + br.y));
}
/* pixel border needs an additional line at the top */
if (p->border_style == BS_PIXEL && !(borders_to_hide & ADJ_UPPER_SCREEN_EDGE)) {
- draw_util_rectangle(conn, &(con->frame_buffer), p->color->background,
- br.x, 0, r->width + br.width, br.y);
+ draw_util_rectangle(conn, &(con->frame_buffer),
+ p->color->decoration_border, br.x, 0, r->width + br.width,
+ br.y);
}
/* Highlight the side of the border at which the next window will be
con->deco_rect.x, con->deco_rect.y, con->deco_rect.width, con->deco_rect.height);
/* 5: draw two unconnected horizontal lines in border color */
- x_draw_decoration_border(con, p);
+ x_draw_title_border(con, p);
/* 6: draw the title */
int text_offset_y = (con->deco_rect.height - config.font.height) / 2;
DLOG("-- PUSHING WINDOW STACK --\n");
//DLOG("Disabling EnterNotify\n");
- uint32_t values[1] = {XCB_NONE};
+ /* We need to keep SubstructureRedirect around, otherwise clients can send
+ * ConfigureWindow requests and get them applied directly instead of having
+ * them become ConfigureRequests that i3 handles. */
+ uint32_t values[1] = {XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT};
CIRCLEQ_FOREACH_REVERSE(state, &state_head, state) {
if (state->mapped)
xcb_change_window_attributes(conn, state->id, XCB_CW_EVENT_MASK, values);