diff --git a/cmd-split-window.c b/cmd-split-window.c index 0e86920b..60792032 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -90,7 +90,7 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item) u_int count = args_count(args); if (cmd_get_entry(self) == &cmd_new_pane_entry) - is_floating = 0; /* !args_has(args, 'L'); */ + is_floating = !args_has(args, 'L'); else is_floating = 0; input = (args_has(args, 'I') && count == 0); diff --git a/cmd-swap-pane.c b/cmd-swap-pane.c index 24ed0b9d..48785c92 100644 --- a/cmd-swap-pane.c +++ b/cmd-swap-pane.c @@ -79,7 +79,7 @@ cmd_swap_pane_exec(struct cmd *self, struct cmdq_item *item) if (src_wp == dst_wp) goto out; - if (window_pane_is_floating(src_wp) && + if (window_pane_is_floating(src_wp) || window_pane_is_floating(dst_wp)) { cmdq_error(item, "cannot swap floating panes"); return (CMD_RETURN_ERROR); diff --git a/key-bindings.c b/key-bindings.c index 4e145a79..8b97c5f0 100644 --- a/key-bindings.c +++ b/key-bindings.c @@ -362,6 +362,7 @@ key_bindings_init(void) "bind -N 'Split window horizontally' % { split-window -h }", "bind -N 'Kill current window' & { confirm-before -p\"kill-window #W? (y/n)\" kill-window }", "bind -N 'Prompt for window index to select' \"'\" { command-prompt -T window-target -pindex { select-window -t ':%%' } }", + "bind -N 'New floating pane' * { new-pane }", "bind -N 'Switch to previous client' ( { switch-client -p }", "bind -N 'Switch to next client' ) { switch-client -n }", "bind -N 'Rename current window' , { command-prompt -I'#W' { rename-window -- '%%' } }", diff --git a/tmux.1 b/tmux.1 index a4df059e..ea776195 100644 --- a/tmux.1 +++ b/tmux.1 @@ -298,6 +298,8 @@ Prompt for a window index to select. Switch the attached client to the previous session. .It \&) Switch the attached client to the next session. +.It * +Create a new floating pane. .It , Rename the current window. .It \-