aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicm <nicm>2020-03-16 14:17:56 +0000
committernicm <nicm>2020-03-16 14:17:56 +0000
commit7021757c9d74eda8a5c1d7940b0d33bbad41fd29 (patch)
tree2e1840b6ccd03f4e52eb1bf0939f4cc63d723945
parent37b7a29ccac2e8f37a37b8c4ad8e9ceedee25ee9 (diff)
downloadrtmux-7021757c9d74eda8a5c1d7940b0d33bbad41fd29.tar.gz
rtmux-7021757c9d74eda8a5c1d7940b0d33bbad41fd29.tar.bz2
rtmux-7021757c9d74eda8a5c1d7940b0d33bbad41fd29.zip
Adjust selection correctly when scrolling, from Anindya Mukherjee.
-rw-r--r--window-copy.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/window-copy.c b/window-copy.c
index 76cea4e6..6864d8f9 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -2877,15 +2877,15 @@ window_copy_redraw_screen(struct window_mode_entry *wme)
}
static void
-window_copy_synchronize_cursor_end(struct window_mode_entry *wme)
+window_copy_synchronize_cursor_end(struct window_mode_entry *wme, int begin)
{
struct window_copy_mode_data *data = wme->data;
u_int xx, yy;
- int begin = 0;
yy = screen_hsize(data->backing) + data->cy - data->oy;
switch (data->selflag) {
case SEL_WORD:
+ begin = 0;
xx = data->cx;
if (data->ws == NULL)
break;
@@ -2911,6 +2911,7 @@ window_copy_synchronize_cursor_end(struct window_mode_entry *wme)
}
break;
case SEL_LINE:
+ begin = 0;
if (data->dy > yy) {
/* Right to left selection. */
xx = 0;
@@ -2948,11 +2949,10 @@ window_copy_synchronize_cursor(struct window_mode_entry *wme)
switch (data->cursordrag) {
case CURSORDRAG_ENDSEL:
- window_copy_synchronize_cursor_end(wme);
+ window_copy_synchronize_cursor_end(wme, 0);
break;
case CURSORDRAG_SEL:
- data->selx = data->cx;
- data->sely = screen_hsize(data->backing) + data->cy - data->oy;
+ window_copy_synchronize_cursor_end(wme, 1);
break;
case CURSORDRAG_NONE:
break;