aboutsummaryrefslogtreecommitdiff
path: root/window-copy.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2020-04-17 16:01:33 +0100
committerThomas Adam <thomas@xteddy.org>2020-04-17 16:01:33 +0100
commit7a21e911e1d2bdf95e4afb6ca3ae6de9e425c369 (patch)
tree771778ad079ecad2dc2a6d292bc1dec76aac1141 /window-copy.c
parentabeb31dd3d189dd3c880b1925b286c296ac5a869 (diff)
parent282a7a8d96877d4063fe16c5fbba03d95bc35008 (diff)
downloadrtmux-7a21e911e1d2bdf95e4afb6ca3ae6de9e425c369.tar.gz
rtmux-7a21e911e1d2bdf95e4afb6ca3ae6de9e425c369.tar.bz2
rtmux-7a21e911e1d2bdf95e4afb6ca3ae6de9e425c369.zip
Merge branch 'obsd-master'
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c12
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);