diff --git a/cmd-select-pane.c b/cmd-select-pane.c index 7871fe05..c5b4ee13 100644 --- a/cmd-select-pane.c +++ b/cmd-select-pane.c @@ -145,10 +145,12 @@ cmd_select_pane_exec(struct cmd *self, struct cmdq_item *item) markedwp = marked_pane.wp; if (lastwp != NULL) { + lastwp->flags |= (PANE_REDRAW|PANE_STYLECHANGED); server_redraw_window_borders(lastwp->window); server_status_window(lastwp->window); } if (markedwp != NULL) { + markedwp->flags |= (PANE_REDRAW|PANE_STYLECHANGED); server_redraw_window_borders(markedwp->window); server_status_window(markedwp->window); } diff --git a/format.c b/format.c index 86263a25..1f18828a 100644 --- a/format.c +++ b/format.c @@ -4300,15 +4300,14 @@ format_replace(struct format_expand_state *es, const char *key, size_t keylen, if (strcmp(found, condition) == 0) { free(found); found = xstrdup(""); - format_log(es, "condition '%s' found: %s", - condition, found); - } else { format_log(es, "condition '%s' not found; assuming false", condition); } - } else - format_log(es, "condition '%s' found", condition); + } else { + format_log(es, "condition '%s' found: %s", condition, + found); + } if (format_choose(es, cp + 1, &left, &right, 0) != 0) { format_log(es, "condition '%s' syntax error: %s", diff --git a/status.c b/status.c index 7435b31a..853f46d3 100644 --- a/status.c +++ b/status.c @@ -390,10 +390,10 @@ status_redraw(struct client *c) /* Set up default colour. */ style_apply(&gc, s->options, "status-style", ft); fg = options_get_number(s->options, "status-fg"); - if (fg != 8) + if (!COLOUR_DEFAULT(fg)) gc.fg = fg; bg = options_get_number(s->options, "status-bg"); - if (bg != 8) + if (!COLOUR_DEFAULT(bg)) gc.bg = bg; if (!grid_cells_equal(&gc, &sl->style)) { force = 1; diff --git a/tty.c b/tty.c index 6cebe051..ecad9249 100644 --- a/tty.c +++ b/tty.c @@ -2790,18 +2790,23 @@ tty_window_default_style(struct grid_cell *gc, struct window_pane *wp) void tty_default_colours(struct grid_cell *gc, struct window_pane *wp) { - struct options *oo = wp->options; + struct options *oo = wp->options; + struct format_tree *ft; memcpy(gc, &grid_default_cell, sizeof *gc); if (wp->flags & PANE_STYLECHANGED) { + log_debug("%%%u: style changed", wp->id); wp->flags &= ~PANE_STYLECHANGED; + ft = format_create(NULL, NULL, FORMAT_PANE|wp->id, + FORMAT_NOJOBS); + format_defaults(ft, NULL, NULL, NULL, wp); tty_window_default_style(&wp->cached_active_gc, wp); - style_add(&wp->cached_active_gc, oo, "window-active-style", - NULL); + style_add(&wp->cached_active_gc, oo, "window-active-style", ft); tty_window_default_style(&wp->cached_gc, wp); - style_add(&wp->cached_gc, oo, "window-style", NULL); + style_add(&wp->cached_gc, oo, "window-style", ft); + format_free(ft); } if (gc->fg == 8) {