aboutsummaryrefslogtreecommitdiff
path: root/cmd-display-panes.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2019-02-06 08:02:37 +0000
committerThomas Adam <thomas@xteddy.org>2019-02-06 08:02:37 +0000
commitc42e89a598aff8fc983b2468be3277aa3dcb71bd (patch)
tree897314d446954da57a008054e30c4d6fd4a93511 /cmd-display-panes.c
parent4ab3b18b36ddd361e0e0030d9d3a2c98b754e88c (diff)
parentafd3127d8902758ae50ced1b5cccd768d48c5fad (diff)
downloadrtmux-c42e89a598aff8fc983b2468be3277aa3dcb71bd.tar.gz
rtmux-c42e89a598aff8fc983b2468be3277aa3dcb71bd.tar.bz2
rtmux-c42e89a598aff8fc983b2468be3277aa3dcb71bd.zip
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-display-panes.c')
-rw-r--r--cmd-display-panes.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/cmd-display-panes.c b/cmd-display-panes.c
index d5b3fb5c..1330ffac 100644
--- a/cmd-display-panes.c
+++ b/cmd-display-panes.c
@@ -37,8 +37,8 @@ const struct cmd_entry cmd_display_panes_entry = {
.name = "display-panes",
.alias = "displayp",
- .args = { "d:t:", 0, 1 },
- .usage = "[-d duration] " CMD_TARGET_CLIENT_USAGE " [template]",
+ .args = { "bd:t:", 0, 1 },
+ .usage = "[-b] [-d duration] " CMD_TARGET_CLIENT_USAGE " [template]",
.flags = CMD_AFTERHOOK,
.exec = cmd_display_panes_exec
@@ -65,7 +65,10 @@ cmd_display_panes_exec(struct cmd *self, struct cmdq_item *item)
c->identify_callback_data = xstrdup(args->argv[0]);
else
c->identify_callback_data = xstrdup("select-pane -t '%%'");
- c->identify_callback_item = item;
+ if (args_has(args, 'b'))
+ c->identify_callback_item = NULL;
+ else
+ c->identify_callback_item = item;
if (args_has(args, 'd')) {
delay = args_strtonum(args, 'd', 0, UINT_MAX, &cause);
@@ -78,6 +81,8 @@ cmd_display_panes_exec(struct cmd *self, struct cmdq_item *item)
delay = options_get_number(s->options, "display-panes-time");
server_client_set_identify(c, delay);
+ if (args_has(args, 'b'))
+ return (CMD_RETURN_NORMAL);
return (CMD_RETURN_WAIT);
}
@@ -115,15 +120,21 @@ cmd_display_panes_callback(struct client *c, struct window_pane *wp)
cmd_list_free(cmdlist);
}
- if (new_item != NULL)
- cmdq_insert_after(c->identify_callback_item, new_item);
+ if (new_item != NULL) {
+ if (c->identify_callback_item != NULL)
+ cmdq_insert_after(c->identify_callback_item, new_item);
+ else
+ cmdq_append(c, new_item);
+ }
free(cmd);
free(expanded);
out:
- c->identify_callback_item->flags &= ~CMDQ_WAITING;
- c->identify_callback_item = NULL;
+ if (c->identify_callback_item != NULL) {
+ c->identify_callback_item->flags &= ~CMDQ_WAITING;
+ c->identify_callback_item = NULL;
+ }
free(c->identify_callback_data);
c->identify_callback_data = NULL;