[BACK]Return to cmd-swap-pane.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/cmd-swap-pane.c between version 1.34 and 1.35

version 1.34, 2019/06/20 11:59:59 version 1.35, 2019/08/14 09:58:31
Line 32 
Line 32 
         .name = "swap-pane",          .name = "swap-pane",
         .alias = "swapp",          .alias = "swapp",
   
         .args = { "dDs:t:U", 0, 0 },          .args = { "dDs:t:UZ", 0, 0 },
         .usage = "[-dDU] " CMD_SRCDST_PANE_USAGE,          .usage = "[-dDUZ] " CMD_SRCDST_PANE_USAGE,
   
         .source = { 's', CMD_FIND_PANE, CMD_FIND_DEFAULT_MARKED },          .source = { 's', CMD_FIND_PANE, CMD_FIND_DEFAULT_MARKED },
         .target = { 't', CMD_FIND_PANE, 0 },          .target = { 't', CMD_FIND_PANE, 0 },
Line 45 
Line 45 
 static enum cmd_retval  static enum cmd_retval
 cmd_swap_pane_exec(struct cmd *self, struct cmdq_item *item)  cmd_swap_pane_exec(struct cmd *self, struct cmdq_item *item)
 {  {
           struct args             *args = self->args;
         struct window           *src_w, *dst_w;          struct window           *src_w, *dst_w;
         struct window_pane      *tmp_wp, *src_wp, *dst_wp;          struct window_pane      *tmp_wp, *src_wp, *dst_wp;
         struct layout_cell      *src_lc, *dst_lc;          struct layout_cell      *src_lc, *dst_lc;
Line 54 
Line 55 
         dst_wp = item->target.wp;          dst_wp = item->target.wp;
         src_w = item->source.wl->window;          src_w = item->source.wl->window;
         src_wp = item->source.wp;          src_wp = item->source.wp;
         server_unzoom_window(dst_w);  
   
         if (args_has(self->args, 'D')) {          if (window_push_zoom(dst_w, args_has(args, 'Z')))
                   server_redraw_window(dst_w);
   
           if (args_has(args, 'D')) {
                 src_w = dst_w;                  src_w = dst_w;
                 src_wp = TAILQ_NEXT(dst_wp, entry);                  src_wp = TAILQ_NEXT(dst_wp, entry);
                 if (src_wp == NULL)                  if (src_wp == NULL)
                         src_wp = TAILQ_FIRST(&dst_w->panes);                          src_wp = TAILQ_FIRST(&dst_w->panes);
         } else if (args_has(self->args, 'U')) {          } else if (args_has(args, 'U')) {
                 src_w = dst_w;                  src_w = dst_w;
                 src_wp = TAILQ_PREV(dst_wp, window_panes, entry);                  src_wp = TAILQ_PREV(dst_wp, window_panes, entry);
                 if (src_wp == NULL)                  if (src_wp == NULL)
                         src_wp = TAILQ_LAST(&dst_w->panes, window_panes);                          src_wp = TAILQ_LAST(&dst_w->panes, window_panes);
         }          }
         server_unzoom_window(src_w);  
   
           if (src_w != dst_w && window_push_zoom(src_w, args_has(args, 'Z')))
                   server_redraw_window(src_w);
   
         if (src_wp == dst_wp)          if (src_wp == dst_wp)
                 return (CMD_RETURN_NORMAL);                  goto out;
   
         tmp_wp = TAILQ_PREV(dst_wp, window_panes, entry);          tmp_wp = TAILQ_PREV(dst_wp, window_panes, entry);
         TAILQ_REMOVE(&dst_w->panes, dst_wp, entry);          TAILQ_REMOVE(&dst_w->panes, dst_wp, entry);
Line 103 
Line 108 
         dst_wp->xoff = xoff; dst_wp->yoff = yoff;          dst_wp->xoff = xoff; dst_wp->yoff = yoff;
         window_pane_resize(dst_wp, sx, sy);          window_pane_resize(dst_wp, sx, sy);
   
         if (!args_has(self->args, 'd')) {          if (!args_has(args, 'd')) {
                 if (src_w != dst_w) {                  if (src_w != dst_w) {
                         window_set_active_pane(src_w, dst_wp, 1);                          window_set_active_pane(src_w, dst_wp, 1);
                         window_set_active_pane(dst_w, src_wp, 1);                          window_set_active_pane(dst_w, src_wp, 1);
Line 126 
Line 131 
         server_redraw_window(src_w);          server_redraw_window(src_w);
         server_redraw_window(dst_w);          server_redraw_window(dst_w);
   
   out:
           if (window_pop_zoom(src_w))
                   server_redraw_window(src_w);
           if (src_w != dst_w && window_pop_zoom(dst_w))
                   server_redraw_window(dst_w);
         return (CMD_RETURN_NORMAL);          return (CMD_RETURN_NORMAL);
 }  }

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35