xcb_rectangle_t *presel_rectangles;
+ uint8_t win_depth = root_depth;
+ xcb_get_geometry_reply_t *geo = xcb_get_geometry_reply(dpy, xcb_get_geometry(dpy, win), NULL);
+ if (geo != NULL)
+ win_depth = geo->depth;
+ free(geo);
+
xcb_pixmap_t pix = xcb_generate_id(dpy);
- xcb_create_pixmap(dpy, root_depth, pix, win, full_width, full_height);
+ xcb_create_pixmap(dpy, win_depth, pix, win, full_width, full_height);
xcb_gcontext_t gc = xcb_generate_id(dpy);
xcb_create_gc(dpy, gc, pix, 0, NULL);
c->locked = !c->locked;
}
+void set_urgency(monitor_t *m, desktop_t *d, node_t *n, bool value)
+{
+ if (value && mon->desk->focus == n)
+ return;
+ n->client->urgent = value;
+ put_status();
+ if (m->desk == d)
+ arrange(m, d);
+}
+
void set_shadow(xcb_window_t win, uint32_t value)
{
if (!apply_shadow_property)
return;
- xcb_change_property(dpy, XCB_PROP_MODE_REPLACE, win, compton_shadow, XCB_ATOM_CARDINAL, 32, sizeof(value), &value);
+ xcb_change_property(dpy, XCB_PROP_MODE_REPLACE, win, compton_shadow, XCB_ATOM_CARDINAL, 32, 1, &value);
}
void enable_shadow(xcb_window_t win)
void update_floating_rectangle(client_t *c)
{
- xcb_get_geometry_reply_t *geom = xcb_get_geometry_reply(dpy, xcb_get_geometry(dpy, c->window), NULL);
+ xcb_get_geometry_reply_t *geo = xcb_get_geometry_reply(dpy, xcb_get_geometry(dpy, c->window), NULL);
- if (geom) {
- c->floating_rectangle = (xcb_rectangle_t) {geom->x, geom->y, geom->width, geom->height};
- free(geom);
- } else {
+ if (geo != NULL)
+ c->floating_rectangle = (xcb_rectangle_t) {geo->x, geo->y, geo->width, geo->height};
+ else
c->floating_rectangle = (xcb_rectangle_t) {0, 0, 32, 24};
- }
+
+ free(geo);
}
xcb_configure_window(dpy, win, XCB_CONFIG_WINDOW_STACK_MODE, values);
}
-void window_pseudo_raise(desktop_t *d, xcb_window_t win)
+void stack_tiled(desktop_t *d)
{
- for (node_t *n = first_extrema(d->root); n != NULL; n = next_leaf(n))
- if (is_tiled(n->client) && n->client->window != win)
- window_lower(n->client->window);
+ for (node_list_t *x = d->history->tail; x != NULL; x = x->prev)
+ if (x->latest && is_tiled(x->node->client))
+ window_lower(x->node->client->window);
}
void window_lower(xcb_window_t win)