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

Diff for /src/usr.bin/tmux/window-tree.c between version 1.10 and 1.11

version 1.10, 2017/07/04 12:26:14 version 1.11, 2017/07/04 22:21:31
Line 83 
Line 83 
   
         struct cmd_find_state             fs;          struct cmd_find_state             fs;
         enum window_tree_type             type;          enum window_tree_type             type;
   
           int                               offset;
 };  };
   
 static void  static void
Line 409 
Line 411 
 }  }
   
 static void  static void
 window_tree_draw_session(struct session *s, struct screen_write_ctx *ctx,  window_tree_draw_session(struct window_tree_modedata *data, struct session *s,
     u_int sx, u_int sy)      struct screen_write_ctx *ctx, u_int sx, u_int sy)
 {  {
         struct options          *oo = s->options;          struct options          *oo = s->options;
         struct winlink          *wl;          struct winlink          *wl;
Line 453 
Line 455 
                 end = start + visible;                  end = start + visible;
         }          }
   
           if (data->offset < -(int)start)
                   data->offset = -(int)start;
           if (data->offset > (int)(total - end))
                   data->offset = (int)(total - end);
           start += data->offset;
           end += data->offset;
   
         left = (start != 0);          left = (start != 0);
         right = (end != total);          right = (end != total);
         if (((left && right) && sx <= 6) || ((left || right) && sx <= 3))          if (((left && right) && sx <= 6) || ((left || right) && sx <= 3))
Line 530 
Line 539 
 }  }
   
 static void  static void
 window_tree_draw_window(struct session *s, struct window *w,  window_tree_draw_window(struct window_tree_modedata *data, struct session *s,
     struct screen_write_ctx *ctx, u_int sx, u_int sy)      struct window *w, struct screen_write_ctx *ctx, u_int sx, u_int sy)
 {  {
         struct options          *oo = s->options;          struct options          *oo = s->options;
         struct window_pane      *wp;          struct window_pane      *wp;
Line 573 
Line 582 
                 end = start + visible;                  end = start + visible;
         }          }
   
           if (data->offset < -(int)start)
                   data->offset = -(int)start;
           if (data->offset > (int)(total - end))
                   data->offset = (int)(total - end);
           start += data->offset;
           end += data->offset;
   
         left = (start != 0);          left = (start != 0);
         right = (end != total);          right = (end != total);
         if (((left && right) && sx <= 6) || ((left || right) && sx <= 3))          if (((left && right) && sx <= 6) || ((left || right) && sx <= 3))
Line 647 
Line 663 
 }  }
   
 static struct screen *  static struct screen *
 window_tree_draw(__unused void *modedata, void *itemdata, u_int sx, u_int sy)  window_tree_draw(void *modedata, void *itemdata, u_int sx, u_int sy)
 {  {
         struct window_tree_itemdata     *item = itemdata;          struct window_tree_itemdata     *item = itemdata;
         struct session                  *sp;          struct session                  *sp;
Line 667 
Line 683 
         case WINDOW_TREE_NONE:          case WINDOW_TREE_NONE:
                 return (0);                  return (0);
         case WINDOW_TREE_SESSION:          case WINDOW_TREE_SESSION:
                 window_tree_draw_session(sp, &ctx, sx, sy);                  window_tree_draw_session(modedata, sp, &ctx, sx, sy);
                 break;                  break;
         case WINDOW_TREE_WINDOW:          case WINDOW_TREE_WINDOW:
                 window_tree_draw_window(sp, wlp->window, &ctx, sx, sy);                  window_tree_draw_window(modedata, sp, wlp->window, &ctx, sx, sy);
                 break;                  break;
         case WINDOW_TREE_PANE:          case WINDOW_TREE_PANE:
                 screen_write_preview(&ctx, &wp->base, sx, sy);                  screen_write_preview(&ctx, &wp->base, sx, sy);
Line 898 
Line 914 
         int                              finished;          int                              finished;
         u_int                            tagged;          u_int                            tagged;
   
           item = mode_tree_get_current(data->data);
         finished = mode_tree_key(data->data, c, &key, m);          finished = mode_tree_key(data->data, c, &key, m);
           if (item != mode_tree_get_current(data->data))
                   data->offset = 0;
         switch (key) {          switch (key) {
           case '<':
                   data->offset--;
                   break;
           case '>':
                   data->offset++;
                   break;
         case ':':          case ':':
                 tagged = mode_tree_count_tagged(data->data);                  tagged = mode_tree_count_tagged(data->data);
                 if (tagged != 0)                  if (tagged != 0)

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11