aboutsummaryrefslogtreecommitdiff
path: root/window-copy.c
diff options
context:
space:
mode:
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/window-copy.c b/window-copy.c
index efb4a43f..90c4b45f 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -376,10 +376,18 @@ window_copy_init(struct window_mode_entry *wme,
u_int i;
data = window_copy_common_init(wme);
-
data->backing = window_copy_clone_screen(&wp->base, &data->screen);
- data->cx = data->backing->cx;
- data->cy = data->backing->cy;
+
+ data->cx = wp->base.cx;
+ if (data->cx > screen_size_x(&data->screen) - 1)
+ data->cx = screen_size_x(&data->screen) - 1;
+
+ data->cy = screen_hsize(&wp->base) + wp->base.cy;
+ if (data->cy < screen_hsize(data->backing)) {
+ data->oy = screen_hsize(data->backing) - data->cy;
+ data->cy = 0;
+ } else
+ data->cy -= screen_hsize(data->backing);
data->scroll_exit = args_has(args, 'e');
data->hide_position = args_has(args, 'H');