aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd-split-window.c2
-rw-r--r--tmux.h3
-rw-r--r--window.c12
3 files changed, 11 insertions, 6 deletions
diff --git a/cmd-split-window.c b/cmd-split-window.c
index 8382d78e..de6827a7 100644
--- a/cmd-split-window.c
+++ b/cmd-split-window.c
@@ -136,7 +136,7 @@ cmd_split_window_exec(struct cmd *self, struct cmd_q *cmdq)
cause = xstrdup("pane too small");
goto error;
}
- new_wp = window_add_pane(w, hlimit);
+ new_wp = window_add_pane(w, wp, hlimit);
layout_assign_pane(lc, new_wp);
path = NULL;
diff --git a/tmux.h b/tmux.h
index fddddca3..5422c8eb 100644
--- a/tmux.h
+++ b/tmux.h
@@ -2130,7 +2130,8 @@ int window_has_pane(struct window *, struct window_pane *);
int window_set_active_pane(struct window *, struct window_pane *);
void window_redraw_active_switch(struct window *,
struct window_pane *);
-struct window_pane *window_add_pane(struct window *, u_int);
+struct window_pane *window_add_pane(struct window *, struct window_pane *,
+ u_int);
void window_resize(struct window *, u_int, u_int);
int window_zoom(struct window_pane *);
int window_unzoom(struct window *);
diff --git a/window.c b/window.c
index 9870fbd5..a252629d 100644
--- a/window.c
+++ b/window.c
@@ -323,7 +323,7 @@ window_create(const char *name, int argc, char **argv, const char *path,
struct window_pane *wp;
w = window_create1(sx, sy);
- wp = window_add_pane(w, hlimit);
+ wp = window_add_pane(w, NULL, hlimit);
layout_init(w, wp);
if (window_pane_spawn(wp, argc, argv, path, shell, cwd, env, tio,
@@ -553,15 +553,19 @@ window_unzoom(struct window *w)
}
struct window_pane *
-window_add_pane(struct window *w, u_int hlimit)
+window_add_pane(struct window *w, struct window_pane *after, u_int hlimit)
{
struct window_pane *wp;
wp = window_pane_create(w, w->sx, w->sy, hlimit);
if (TAILQ_EMPTY(&w->panes))
TAILQ_INSERT_HEAD(&w->panes, wp, entry);
- else
- TAILQ_INSERT_AFTER(&w->panes, w->active, wp, entry);
+ else {
+ if (after == NULL)
+ TAILQ_INSERT_AFTER(&w->panes, w->active, wp, entry);
+ else
+ TAILQ_INSERT_AFTER(&w->panes, after, wp, entry);
+ }
return (wp);
}