patch 8.2.4154: ml_get error when exchanging windows in Visual mode

Problem:    ml_get error when exchanging windows in Visual mode.
Solution:   Correct end of Visual area when entering another buffer.
This commit is contained in:
Bram Moolenaar
2022-01-20 13:32:50 +00:00
parent 4ac893f321
commit 05b2761548
3 changed files with 18 additions and 1 deletions

View File

@ -1318,5 +1318,15 @@ func Test_visual_block_insert_round_off()
bwipe!
endfunc
" this was causing an ml_get error
func Test_visual_exchange_windows()
enew!
new
call setline(1, ['foo', 'bar'])
exe "normal G\<C-V>gg\<C-W>\<C-X>OO\<Esc>"
bwipe!
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4154,
/**/
4153,
/**/

View File

@ -1691,6 +1691,11 @@ win_exchange(long Prenum)
(void)win_comp_pos(); // recompute window positions
if (wp->w_buffer != curbuf)
reset_VIsual_and_resel();
else if (VIsual_active)
wp->w_cursor = curwin->w_cursor;
win_enter(wp, TRUE);
redraw_all_later(NOT_VALID);
}