From a7d1ee5433825c6e09877751a751aa0d9bd27b0d Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 29 Aug 2017 20:26:25 +0000 Subject: [PATCH] Redraw rectangle selections properly when cursor at end, GitHub issue 992. --- window-copy.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/window-copy.c b/window-copy.c index cd77a89c..4bd9d127 100644 --- a/window-copy.c +++ b/window-copy.c @@ -1508,10 +1508,17 @@ window_copy_update_selection(struct window_pane *wp, int may_redraw) * of lines, and redraw just past that in both directions */ cy = data->cy; - if (sy < cy) - window_copy_redraw_lines(wp, sy, cy - sy + 1); - else - window_copy_redraw_lines(wp, cy, sy - cy + 1); + if (data->cursordrag == CURSORDRAG_ENDSEL) { + if (sy < cy) + window_copy_redraw_lines(wp, sy, cy - sy + 1); + else + window_copy_redraw_lines(wp, cy, sy - cy + 1); + } else { + if (endsy < cy) + window_copy_redraw_lines(wp, endsy, cy - endsy + 1); + else + window_copy_redraw_lines(wp, cy, endsy - cy + 1); + } } return (1);