Use a grid cell not a style for the pane style.

This commit is contained in:
Nicholas Marriott
2020-04-27 15:15:12 +01:00
parent c30e765c7b
commit 79b4d83952
5 changed files with 39 additions and 63 deletions

View File

@ -495,8 +495,8 @@ window_set_active_pane(struct window *w, struct window_pane *wp, int notify)
void
window_redraw_active_switch(struct window *w, struct window_pane *wp)
{
struct style *sy1, *sy2;
int c1, c2;
struct grid_cell *gc1, *gc2;
int c1, c2;
if (wp == w->active)
return;
@ -506,18 +506,18 @@ window_redraw_active_switch(struct window *w, struct window_pane *wp)
* If the active and inactive styles or palettes are different,
* need to redraw the panes.
*/
sy1 = &wp->cached_style;
sy2 = &wp->cached_active_style;
if (!style_equal(sy1, sy2))
gc1 = &wp->cached_gc;
gc2 = &wp->cached_active_gc;
if (!grid_cells_look_equal(gc1, gc2))
wp->flags |= PANE_REDRAW;
else {
c1 = window_pane_get_palette(wp, sy1->gc.fg);
c2 = window_pane_get_palette(wp, sy2->gc.fg);
c1 = window_pane_get_palette(wp, gc1->fg);
c2 = window_pane_get_palette(wp, gc2->fg);
if (c1 != c2)
wp->flags |= PANE_REDRAW;
else {
c1 = window_pane_get_palette(wp, sy1->gc.bg);
c2 = window_pane_get_palette(wp, sy2->gc.bg);
c1 = window_pane_get_palette(wp, gc1->bg);
c2 = window_pane_get_palette(wp, gc2->bg);
if (c1 != c2)
wp->flags |= PANE_REDRAW;
}