[BACK]Return to screen-redraw.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/screen-redraw.c between version 1.53 and 1.54

version 1.53, 2018/08/19 16:45:03 version 1.54, 2018/08/19 20:13:07
Line 344 
Line 344 
 }  }
   
 /* Update status line and change flags if unchanged. */  /* Update status line and change flags if unchanged. */
 static void  static int
 screen_redraw_update(struct client *c)  screen_redraw_update(struct client *c, int flags)
 {  {
         struct window           *w = c->session->curw->window;          struct window           *w = c->session->curw->window;
         struct window_pane      *wp;          struct window_pane      *wp;
Line 358 
Line 358 
                 redraw = status_prompt_redraw(c);                  redraw = status_prompt_redraw(c);
         else          else
                 redraw = status_redraw(c);                  redraw = status_redraw(c);
         if (!redraw)          if (!redraw && (~flags & CLIENT_REDRAWSTATUSALWAYS))
                 c->flags &= ~CLIENT_REDRAWSTATUS;                  flags &= ~CLIENT_REDRAWSTATUS;
   
         if (options_get_number(wo, "pane-border-status") != CELL_STATUS_OFF) {          if (options_get_number(wo, "pane-border-status") != CELL_STATUS_OFF) {
                 redraw = 0;                  redraw = 0;
Line 368 
Line 368 
                                 redraw = 1;                                  redraw = 1;
                 }                  }
                 if (redraw)                  if (redraw)
                         c->flags |= CLIENT_REDRAWBORDERS;                          flags |= CLIENT_REDRAWBORDERS;
         }          }
           return (flags);
 }  }
   
 /* Set up redraw context. */  /* Set up redraw context. */
Line 398 
Line 399 
 screen_redraw_screen(struct client *c)  screen_redraw_screen(struct client *c)
 {  {
         struct screen_redraw_ctx        ctx;          struct screen_redraw_ctx        ctx;
           int                             flags;
   
         if (c->flags & CLIENT_SUSPENDED)          if (c->flags & CLIENT_SUSPENDED)
                 return;                  return;
   
         screen_redraw_update(c);          flags = screen_redraw_update(c, c->flags);
         screen_redraw_set_context(c, &ctx);          screen_redraw_set_context(c, &ctx);
   
         if (c->flags & (CLIENT_REDRAWWINDOW|CLIENT_REDRAWBORDERS)) {          if (flags & (CLIENT_REDRAWWINDOW|CLIENT_REDRAWBORDERS)) {
                 if (ctx.pane_status != CELL_STATUS_OFF)                  if (ctx.pane_status != CELL_STATUS_OFF)
                         screen_redraw_draw_pane_status(&ctx);                          screen_redraw_draw_pane_status(&ctx);
                 screen_redraw_draw_borders(&ctx);                  screen_redraw_draw_borders(&ctx);
         }          }
         if (c->flags & CLIENT_REDRAWWINDOW)          if (flags & CLIENT_REDRAWWINDOW)
                 screen_redraw_draw_panes(&ctx);                  screen_redraw_draw_panes(&ctx);
         if (ctx.lines != 0 && (c->flags & CLIENT_REDRAWSTATUS))          if (ctx.lines != 0 &&
               (flags & (CLIENT_REDRAWSTATUS|CLIENT_REDRAWSTATUSALWAYS)))
                 screen_redraw_draw_status(&ctx);                  screen_redraw_draw_status(&ctx);
         tty_reset(&c->tty);          tty_reset(&c->tty);
 }  }

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.54