From 2f32edf4f8ea46e3081a8f70a186568fc75b9927 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 28 May 2026 11:17:35 +0000 Subject: [PATCH] Swap panes on z-index list as well. --- usr.bin/tmux/cmd-swap-pane.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/usr.bin/tmux/cmd-swap-pane.c b/usr.bin/tmux/cmd-swap-pane.c index 90e1117d591..58187c3f9c6 100644 --- a/usr.bin/tmux/cmd-swap-pane.c +++ b/usr.bin/tmux/cmd-swap-pane.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-swap-pane.c,v 1.46 2026/05/20 08:54:40 nicm Exp $ */ +/* $OpenBSD: cmd-swap-pane.c,v 1.47 2026/05/28 11:17:35 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -98,6 +98,16 @@ cmd_swap_pane_exec(struct cmd *self, struct cmdq_item *item) else TAILQ_INSERT_AFTER(&dst_w->panes, tmp_wp, src_wp, entry); + tmp_wp = TAILQ_PREV(dst_wp, window_panes, zentry); + TAILQ_REMOVE(&dst_w->z_index, dst_wp, zentry); + TAILQ_REPLACE(&src_w->z_index, src_wp, dst_wp, zentry); + if (tmp_wp == src_wp) + tmp_wp = dst_wp; + if (tmp_wp == NULL) + TAILQ_INSERT_HEAD(&dst_w->z_index, src_wp, zentry); + else + TAILQ_INSERT_AFTER(&dst_w->z_index, tmp_wp, src_wp, zentry); + src_lc = src_wp->layout_cell; dst_lc = dst_wp->layout_cell; src_lc->wp = dst_wp;