diff options
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/server-client.c b/server-client.c index 27b264a0..1be3575e 100644 --- a/server-client.c +++ b/server-client.c @@ -93,7 +93,7 @@ void server_client_set_overlay(struct client *c, u_int delay, overlay_check_cb checkcb, overlay_mode_cb modecb, overlay_draw_cb drawcb, overlay_key_cb keycb, overlay_free_cb freecb, - void *data) + overlay_resize_cb resizecb, void *data) { struct timeval tv; @@ -114,6 +114,7 @@ server_client_set_overlay(struct client *c, u_int delay, c->overlay_draw = drawcb; c->overlay_key = keycb; c->overlay_free = freecb; + c->overlay_resize = resizecb; c->overlay_data = data; c->tty.flags |= TTY_FREEZE; @@ -2061,9 +2062,12 @@ server_client_dispatch(struct imsg *imsg, void *arg) if (c->flags & CLIENT_CONTROL) break; server_client_update_latest(c); - server_client_clear_overlay(c); tty_resize(&c->tty); recalculate_sizes(); + if (c->overlay_resize == NULL) + server_client_clear_overlay(c); + else + c->overlay_resize(c); server_redraw_client(c); if (c->session != NULL) notify_client("client-resized", c); |