owindow *current;
TAILQ_FOREACH(current, &owindows, owindows) {
DLOG("matching: %p / %s\n", current->con, current->con->name);
+ current->con->mark_changed=true;
if (toggle != NULL && current->con->mark && strcmp(current->con->mark, mark) == 0) {
DLOG("removing window mark %s\n", mark);
FREE(current->con->mark);
if (matched)
continue;
- if (con->mark && strcmp(con->mark, mark) == 0)
+ if (con->mark && strcmp(con->mark, mark) == 0) {
FREE(con->mark);
+ con->mark_changed = true;
+ }
}
cmd_output->needs_tree_render = true;
if (mark == NULL) {
Con *con;
TAILQ_FOREACH(con, &all_cons, all_cons) {
+ if (con->mark == NULL)
+ continue;
+
FREE(con->mark);
+ con->mark_changed = true;
}
DLOG("removed all window marks");
} else {
Con *con;
TAILQ_FOREACH(con, &all_cons, all_cons) {
- if (con->mark && strcmp(con->mark, mark) == 0)
+ if (con->mark && strcmp(con->mark, mark) == 0) {
FREE(con->mark);
+ con->mark_changed = true;
+ }
}
DLOG("removed window mark %s\n", mark);
}
(con->window == NULL || !con->window->name_x_changed) &&
!parent->pixmap_recreated &&
!con->pixmap_recreated &&
+ !con->mark_changed &&
memcmp(p, con->deco_render_params, sizeof(struct deco_render_params)) == 0) {
free(p);
goto copy_pixmaps;
parent->pixmap_recreated = false;
con->pixmap_recreated = false;
+ con->mark_changed = false;
/* 2: draw the client.background, but only for the parts around the client_rect */
if (con->window != NULL) {