summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/cmd-display-menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/tmux/cmd-display-menu.c')
-rw-r--r--usr.bin/tmux/cmd-display-menu.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.bin/tmux/cmd-display-menu.c b/usr.bin/tmux/cmd-display-menu.c
index 57d39c48b4b..d22a15e73dc 100644
--- a/usr.bin/tmux/cmd-display-menu.c
+++ b/usr.bin/tmux/cmd-display-menu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-display-menu.c,v 1.5 2020/03/18 09:13:49 nicm Exp $ */
+/* $OpenBSD: cmd-display-menu.c,v 1.6 2020/03/19 13:32:49 nicm Exp $ */
/*
* Copyright (c) 2019 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -60,6 +60,8 @@ cmd_display_menu_get_position(struct client *c, struct cmdq_item *item,
*px = 0;
else if (strcmp(xp, "R") == 0)
*px = c->tty.sx - 1;
+ else if (strcmp(xp, "C") == 0)
+ *px = (c->tty.sx - 1) / 2 - w / 2;
else if (strcmp(xp, "P") == 0) {
tty_window_offset(&c->tty, &ox, &oy, &sx, &sy);
if (wp->xoff >= ox)
@@ -94,6 +96,8 @@ cmd_display_menu_get_position(struct client *c, struct cmdq_item *item,
yp = args_get(args, 'y');
if (yp == NULL)
*py = 0;
+ else if (strcmp(yp, "C") == 0)
+ *py = (c->tty.sy - 1) / 2 + h / 2;
else if (strcmp(yp, "P") == 0) {
tty_window_offset(&c->tty, &ox, &oy, &sx, &sy);
if (wp->yoff + wp->sy >= oy)
@@ -132,7 +136,7 @@ cmd_display_menu_exec(struct cmd *self, struct cmdq_item *item)
struct menu_item menu_item;
const char *key;
char *title, *name;
- int flags, i;
+ int flags = 0, i;
u_int px, py;
if ((c = cmd_find_client(item, args_get(args, 'c'), 0)) == NULL)
@@ -180,7 +184,6 @@ cmd_display_menu_exec(struct cmd *self, struct cmdq_item *item)
cmd_display_menu_get_position(c, item, args, &px, &py, menu->width + 4,
menu->count + 2);
- flags = 0;
if (!item->shared->mouse.valid)
flags |= MENU_NOMOUSE;
if (menu_display(menu, flags, item, px, py, c, fs, NULL, NULL) != 0)