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

This commit is contained in:
nicm
2020-05-16 14:53:23 +00:00
parent 428137d876
commit 5bf96c2f2c
6 changed files with 72 additions and 83 deletions

View File

@ -488,8 +488,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;
@ -499,18 +499,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;
}