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

Diff for /src/usr.bin/tmux/tty.c between version 1.343 and 1.344

version 1.343, 2020/03/16 09:18:47 version 1.344, 2020/03/16 10:49:06
Line 658 
Line 658 
 void  void
 tty_update_mode(struct tty *tty, int mode, struct screen *s)  tty_update_mode(struct tty *tty, int mode, struct screen *s)
 {  {
         int     changed;          struct client   *c = tty->client;
           int              changed;
   
         if (s != NULL && strcmp(s->ccolour, tty->ccolour) != 0)          if (s != NULL && strcmp(s->ccolour, tty->ccolour) != 0)
                 tty_force_cursor_colour(tty, s->ccolour);                  tty_force_cursor_colour(tty, s->ccolour);
Line 667 
Line 668 
                 mode &= ~MODE_CURSOR;                  mode &= ~MODE_CURSOR;
   
         changed = mode ^ tty->mode;          changed = mode ^ tty->mode;
           if (changed == 0)
                   return;
           log_debug("%s: update mode %x to %x", c->name, tty->mode, mode);
   
         if (changed & MODE_BLINKING) {          if (changed & MODE_BLINKING) {
                 if (tty_term_has(tty->term, TTYC_CVVIS))                  if (tty_term_has(tty->term, TTYC_CVVIS))
                         tty_putcode(tty, TTYC_CVVIS);                          tty_putcode(tty, TTYC_CVVIS);
Line 690 
Line 695 
                 }                  }
                 tty->cstyle = s->cstyle;                  tty->cstyle = s->cstyle;
         }          }
         if (changed & ALL_MOUSE_MODES) {          if ((changed & ALL_MOUSE_MODES) &&
                 if (mode & ALL_MOUSE_MODES) {              tty_term_has(tty->term, TTYC_KMOUS)) {
                         /*                  if ((mode & ALL_MOUSE_MODES) == 0)
                          * Enable the SGR (1006) extension unconditionally, as  
                          * it is safe from misinterpretation.  
                          */  
                         tty_puts(tty, "\033[?1006h");  
                         if (mode & MODE_MOUSE_ALL)  
                                 tty_puts(tty, "\033[?1003h");  
                         else if (mode & MODE_MOUSE_BUTTON)  
                                 tty_puts(tty, "\033[?1002h");  
                         else if (mode & MODE_MOUSE_STANDARD)  
                                 tty_puts(tty, "\033[?1000h");  
                 } else {  
                         if (tty->mode & MODE_MOUSE_ALL)  
                                 tty_puts(tty, "\033[?1003l");  
                         else if (tty->mode & MODE_MOUSE_BUTTON)  
                                 tty_puts(tty, "\033[?1002l");  
                         else if (tty->mode & MODE_MOUSE_STANDARD)  
                                 tty_puts(tty, "\033[?1000l");  
                         tty_puts(tty, "\033[?1006l");                          tty_puts(tty, "\033[?1006l");
                 }                  if ((changed & MODE_MOUSE_STANDARD) &&
                       (~mode & MODE_MOUSE_STANDARD))
                           tty_puts(tty, "\033[?1000l");
                   if ((changed & MODE_MOUSE_BUTTON) &&
                       (~mode & MODE_MOUSE_BUTTON))
                           tty_puts(tty, "\033[?1002l");
                   if ((changed & MODE_MOUSE_ALL) &&
                       (~mode & MODE_MOUSE_ALL))
                           tty_puts(tty, "\033[?1003l");
   
                   if (mode & ALL_MOUSE_MODES)
                           tty_puts(tty, "\033[?1006h");
                   if ((changed & MODE_MOUSE_STANDARD) &&
                       (mode & MODE_MOUSE_STANDARD))
                           tty_puts(tty, "\033[?1000h");
                   if ((changed & MODE_MOUSE_BUTTON) &&
                       (mode & MODE_MOUSE_BUTTON))
                           tty_puts(tty, "\033[?1002h");
                   if ((changed & MODE_MOUSE_ALL) &&
                       (mode & MODE_MOUSE_ALL))
                           tty_puts(tty, "\033[?1003h");
         }          }
         if (changed & MODE_BRACKETPASTE) {          if (changed & MODE_BRACKETPASTE) {
                 if (mode & MODE_BRACKETPASTE)                  if (mode & MODE_BRACKETPASTE)

Legend:
Removed from v.1.343  
changed lines
  Added in v.1.344