summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2017-08-29 20:26:25 +0000
committernicm <nicm>2017-08-29 20:26:25 +0000
commita7d1ee5433825c6e09877751a751aa0d9bd27b0d (patch)
treea412a24c57d2ba4da4547777dd4af625fc0a98a2
parent5fc0be50450e750c374e22345005e98011fa6465 (diff)
Redraw rectangle selections properly when cursor at end, GitHub issue 992.
-rw-r--r--window-copy.c15
1 files 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);