Rather than blindly call session_renumber_session when the option wasn't
requested (and hence breaking the case of renumbering a winlink manually),
instead only renumber the src session, since that session is the one which
will have "gaps".
---
 cmd-move-window.c | 12 +++++++++++-
 server-fn.c       |  1 -
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/cmd-move-window.c b/cmd-move-window.c
index 3064cd6..8db4534 100644
--- a/cmd-move-window.c
+++ b/cmd-move-window.c
@@ -51,7 +51,7 @@ cmd_move_window_exec(struct cmd *self, struct cmd_q *cmdq)
        struct session  *src, *dst, *s;
        struct winlink  *wl;
        char            *cause;
-       int              idx, kflag, dflag;
+       int              idx, kflag, dflag, sflag;
 
        if (args_has(args, 'r')) {
                s = cmd_find_session(cmdq, args_get(args, 't'), 0);
@@ -71,6 +71,7 @@ cmd_move_window_exec(struct cmd *self, struct cmd_q *cmdq)
 
        kflag = args_has(self->args, 'k');
        dflag = args_has(self->args, 'd');
+       sflag = args_has(self->args, 's');
        if (server_link_window(src, wl, dst, idx, kflag, !dflag,
            &cause) != 0) {
                cmdq_error(cmdq, "can't link window: %s", cause);
@@ -79,6 +80,15 @@ cmd_move_window_exec(struct cmd *self, struct cmd_q *cmdq)
        }
        if (self->entry == &cmd_move_window_entry)
                server_unlink_window(src, wl);
+
+       /*
+        * Renumber the winlinks in the src session only; the destination
+        * session already has the correct winlink id to use; either
+        * automatically or specified by -s in this command.
+        */
+       if (!sflag && options_get_number(&src->options, "renumber-windows"))
+               session_renumber_windows(src);
+
        recalculate_sizes();
 
        return (CMD_RETURN_NORMAL);
diff --git a/server-fn.c b/server-fn.c
index b35eace..f2b2e26 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -351,7 +351,6 @@ server_unlink_window(struct session *s, struct winlink *wl)
                server_destroy_session_group(s);
        else
                server_redraw_session_group(s);
-       session_renumber_windows(s);
 }
 
 void
-- 
2.1.4


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to