=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/menu.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- src/usr.bin/tmux/menu.c 2020/05/16 15:06:03 1.26 +++ src/usr.bin/tmux/menu.c 2020/05/16 15:34:08 1.27 @@ -1,4 +1,4 @@ -/* $OpenBSD: menu.c,v 1.26 2020/05/16 15:06:03 nicm Exp $ */ +/* $OpenBSD: menu.c,v 1.27 2020/05/16 15:34:08 nicm Exp $ */ /* * Copyright (c) 2019 Nicholas Marriott @@ -130,14 +130,12 @@ free(menu); } -static int +static struct screen * menu_mode_cb(struct client *c, __unused u_int *cx, __unused u_int *cy) { struct menu_data *md = c->overlay_data; - if (~md->flags & MENU_NOMOUSE) - return (MODE_MOUSE_ALL); - return (0); + return (&md->s); } static void @@ -153,13 +151,15 @@ style_apply(&gc, c->session->curw->window->options, "mode-style", NULL); - screen_write_start(&ctx, NULL, s); + screen_write_start(&ctx, s); screen_write_clearscreen(&ctx, 8); screen_write_menu(&ctx, menu, md->choice, &gc); screen_write_stop(&ctx); - for (i = 0; i < screen_size_y(&md->s); i++) - tty_draw_line(tty, NULL, s, 0, i, menu->width + 4, px, py + i); + for (i = 0; i < screen_size_y(&md->s); i++) { + tty_draw_line(tty, s, 0, i, menu->width + 4, px, py + i, + &grid_default_cell, NULL); + } } static void @@ -349,6 +349,8 @@ if (fs != NULL) cmd_find_copy_state(&md->fs, fs); screen_init(&md->s, menu->width + 4, menu->count + 2, 0); + if (~md->flags & MENU_NOMOUSE) + md->s.mode |= MODE_MOUSE_ALL; md->px = px; md->py = py;