summaryrefslogtreecommitdiffstats
path: root/menu.c
diff options
context:
space:
mode:
authornicm <nicm>2021-10-11 13:27:50 +0000
committernicm <nicm>2021-10-11 13:27:50 +0000
commitb8581ec80e5339be5e2c08cfec70a77f21ba06b2 (patch)
treeaa0d8f6d2e94066431aefca55f1f8b758a8e108e /menu.c
parent759efe1b3327a7244c03ecc7b90e0e3c49712d06 (diff)
Make positions hidden by overlays range-based rather than character-based,
from Anindya Mukherjee.
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/menu.c b/menu.c
index 043dafdd..4c6403a0 100644
--- a/menu.c
+++ b/menu.c
@@ -140,17 +140,16 @@ menu_mode_cb(__unused struct client *c, void *data, __unused u_int *cx,
return (&md->s);
}
-int
-menu_check_cb(__unused struct client *c, void *data, u_int px, u_int py)
+/* Return parts of the input range which are not obstructed by the menu. */
+void
+menu_check_cb(__unused struct client *c, void *data, u_int px, u_int py,
+ u_int nx, struct overlay_ranges *r)
{
struct menu_data *md = data;
struct menu *menu = md->menu;
- if (px < md->px || px > md->px + menu->width + 3)
- return (1);
- if (py < md->py || py > md->py + menu->count + 1)
- return (1);
- return (0);
+ server_client_overlay_range(md->px, md->py, menu->width + 4,
+ menu->count + 2, px, py, nx, r);
}
void