diff options
author | nicm <nicm> | 2020-04-17 14:06:42 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-04-17 14:06:42 +0000 |
commit | 282a7a8d96877d4063fe16c5fbba03d95bc35008 (patch) | |
tree | a85b9492967d3710da1e41a8c061e31cc8ff11f3 /window-copy.c | |
parent | 7f2925a01de5da0416dd2589ee080f61650f2da9 (diff) | |
download | rtmux-282a7a8d96877d4063fe16c5fbba03d95bc35008.tar.gz rtmux-282a7a8d96877d4063fe16c5fbba03d95bc35008.tar.bz2 rtmux-282a7a8d96877d4063fe16c5fbba03d95bc35008.zip |
Make sure the cursor position is still on screen after we have trimmed
empty lines. Also improve some log messages.
Diffstat (limited to 'window-copy.c')
-rw-r--r-- | window-copy.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/window-copy.c b/window-copy.c index bdf2c148..45a47675 100644 --- a/window-copy.c +++ b/window-copy.c @@ -314,14 +314,22 @@ window_copy_clone_screen(struct screen *src, struct screen *hint, u_int *cx, break; sy--; } + log_debug("%s: target screen is %ux%u, source %ux%u", __func__, + screen_size_x(src), sy, screen_size_x(hint), + screen_hsize(src) + screen_size_y(src)); screen_init(dst, screen_size_x(src), sy, screen_hlimit(src)); grid_duplicate_lines(dst->grid, 0, src->grid, 0, sy); dst->grid->sy = sy - screen_hsize(src); dst->grid->hsize = screen_hsize(src); dst->grid->hscrolled = src->grid->hscrolled; - dst->cx = src->cx; - dst->cy = src->cy; + if (src->cy > dst->grid->sy - 1) { + dst->cx = 0; + dst->cy = dst->grid->sy - 1; + } else { + dst->cx = src->cx; + dst->cy = src->cy; + } screen_resize_cursor(dst, screen_size_x(hint), screen_size_y(hint), 1, 0, cx, cy); |