Fix mouse_word format now word-separators has no space and position of

menu if too close to the bottom.
pull/2802/head
nicm 2021-07-08 11:14:53 +00:00
parent 32f2d9d089
commit 51915b9b0a
2 changed files with 5 additions and 3 deletions

View File

@ -176,7 +176,7 @@ cmd_display_menu_get_position(struct client *tc, struct cmdq_item *item,
format_add(ft, "popup_mouse_centre_y", "%ld", n);
n = (long)event->m.y + h;
if (n + h >= tty->sy)
format_add(ft, "popup_mouse_top", "%u", tty->sy - h);
format_add(ft, "popup_mouse_top", "%u", tty->sy - 1);
else
format_add(ft, "popup_mouse_top", "%ld", n);
n = event->m.y - h;

View File

@ -4809,7 +4809,8 @@ format_grid_word(struct grid *gd, u_int x, u_int y)
grid_get_cell(gd, x, y, &gc);
if (gc.flags & GRID_FLAG_PADDING)
break;
if (utf8_cstrhas(ws, &gc.data)) {
if (utf8_cstrhas(ws, &gc.data) ||
(gc.data.size == 1 && *gc.data.data == ' ')) {
found = 1;
break;
}
@ -4846,7 +4847,8 @@ format_grid_word(struct grid *gd, u_int x, u_int y)
grid_get_cell(gd, x, y, &gc);
if (gc.flags & GRID_FLAG_PADDING)
break;
if (utf8_cstrhas(ws, &gc.data))
if (utf8_cstrhas(ws, &gc.data) ||
(gc.data.size == 1 && *gc.data.data == ' '))
break;
ud = xreallocarray(ud, size + 2, sizeof *ud);