summaryrefslogtreecommitdiffstats
path: root/cmd-kill-pane.c
diff options
context:
space:
mode:
authornicm <nicm>2017-01-14 18:53:08 +0000
committernicm <nicm>2017-01-14 18:53:08 +0000
commite06efab9da1f4edb3cb631dc752d7786d5edb5cf (patch)
tree07358e253457a631c7fad217265c51f39cb82bd0 /cmd-kill-pane.c
parent08d21936e4559a92174361d7785ca3e967972edb (diff)
killp -a should not kill the window if only one pane.
Diffstat (limited to 'cmd-kill-pane.c')
-rw-r--r--cmd-kill-pane.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/cmd-kill-pane.c b/cmd-kill-pane.c
index 59bbd19e..05d81e59 100644
--- a/cmd-kill-pane.c
+++ b/cmd-kill-pane.c
@@ -49,13 +49,6 @@ cmd_kill_pane_exec(struct cmd *self, struct cmdq_item *item)
server_unzoom_window(wl->window);
- if (window_count_panes(wl->window) == 1) {
- /* Only one pane, kill the window. */
- server_kill_window(wl->window);
- recalculate_sizes();
- return (CMD_RETURN_NORMAL);
- }
-
if (args_has(self->args, 'a')) {
TAILQ_FOREACH_SAFE(loopwp, &wl->window->panes, entry, tmpwp) {
if (loopwp == wp)
@@ -63,11 +56,16 @@ cmd_kill_pane_exec(struct cmd *self, struct cmdq_item *item)
layout_close_pane(loopwp);
window_remove_pane(wl->window, loopwp);
}
+ return (CMD_RETURN_NORMAL);
+ }
+
+ if (window_count_panes(wl->window) == 1) {
+ server_kill_window(wl->window);
+ recalculate_sizes();
} else {
layout_close_pane(wp);
window_remove_pane(wl->window, wp);
+ server_redraw_window(wl->window);
}
- server_redraw_window(wl->window);
-
return (CMD_RETURN_NORMAL);
}