summaryrefslogtreecommitdiff
path: root/src/mouse.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-11-18 23:31:48 +0100
committerBram Moolenaar <Bram@vim.org>2019-11-18 23:31:48 +0100
commit0a5aa7b28a39507260acb15c1ef698a33c855cc1 (patch)
tree5af214bb0f15f94bf0c0a155901b093028ca9e75 /src/mouse.c
parentf9ae154c512683ea7b933f870b0268232fd7ad38 (diff)
downloadvim-git-0a5aa7b28a39507260acb15c1ef698a33c855cc1.tar.gz
patch 8.1.2321: cannot select all text with the mousev8.1.2321
Problem: Cannot select all text with the mouse. (John Marriott) Solution: Move limiting the mouse column to f_getmousepos(). (closes #5242)
Diffstat (limited to 'src/mouse.c')
-rw-r--r--src/mouse.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/mouse.c b/src/mouse.c
index f3ff26d2e..c14180068 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -2822,7 +2822,6 @@ mouse_comp_pos(
int retval = FALSE;
int off;
int count;
- char_u *p;
#ifdef FEAT_RIGHTLEFT
if (win->w_p_rl)
@@ -2882,11 +2881,6 @@ mouse_comp_pos(
col += row * (win->w_width - off);
// add skip column (for long wrapping line)
col += win->w_skipcol;
- // limit to text length plus one
- p = ml_get_buf(win->w_buffer, lnum, FALSE);
- count = (int)STRLEN(p);
- if (col > count)
- col = count;
}
if (!win->w_p_wrap)
@@ -3053,7 +3047,17 @@ f_getmousepos(typval_T *argvars UNUSED, typval_T *rettv)
col -= left_off;
if (row >= 0 && row < wp->w_height && col >= 0 && col < wp->w_width)
{
+ char_u *p;
+ int count;
+
mouse_comp_pos(wp, &row, &col, &line, NULL);
+
+ // limit to text length plus one
+ p = ml_get_buf(wp->w_buffer, line, FALSE);
+ count = (int)STRLEN(p);
+ if (col > count)
+ col = count;
+
column = col + 1;
}
}