aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
diff options
context:
space:
mode:
authornicm <nicm>2021-07-21 08:06:36 +0000
committernicm <nicm>2021-07-21 08:06:36 +0000
commitf0e02387b2e13ba2a924b4a6c47da38b22bd8d3e (patch)
treedee378866cb0e68c613c1fd8f3c4eb46176804fe /server-client.c
parent732c72c98e9b3aa6b1d33f1eab9fa16874d92e7d (diff)
downloadrtmux-f0e02387b2e13ba2a924b4a6c47da38b22bd8d3e.tar.gz
rtmux-f0e02387b2e13ba2a924b4a6c47da38b22bd8d3e.tar.bz2
rtmux-f0e02387b2e13ba2a924b4a6c47da38b22bd8d3e.zip
Do not close popups on resize, instead adjust them to fit, from Anindya
Mukherjee.
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c8
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);