diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-11-18 23:31:48 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-11-18 23:31:48 +0100 |
commit | 0a5aa7b28a39507260acb15c1ef698a33c855cc1 (patch) | |
tree | 5af214bb0f15f94bf0c0a155901b093028ca9e75 /src/mouse.c | |
parent | f9ae154c512683ea7b933f870b0268232fd7ad38 (diff) | |
download | vim-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.c | 16 |
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; } } |