mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.5155: in diff mode windows may get out of sync
Problem: In diff mode windows may get out of sync. (Gary Johnson) Solution: Avoid that the other window scrolls for 'cursorbind'.
This commit is contained in:
parent
a57b553b43
commit
a315ce1f32
@ -2952,7 +2952,12 @@ do_check_cursorbind(void)
|
|||||||
restart_edit_save = restart_edit;
|
restart_edit_save = restart_edit;
|
||||||
restart_edit = TRUE;
|
restart_edit = TRUE;
|
||||||
check_cursor();
|
check_cursor();
|
||||||
validate_cursor();
|
|
||||||
|
// Avoid a scroll here for the cursor position, 'scrollbind' is
|
||||||
|
// more important.
|
||||||
|
if (!curwin->w_p_scb)
|
||||||
|
validate_cursor();
|
||||||
|
|
||||||
restart_edit = restart_edit_save;
|
restart_edit = restart_edit_save;
|
||||||
// Correct cursor for multi-byte character.
|
// Correct cursor for multi-byte character.
|
||||||
if (has_mbyte)
|
if (has_mbyte)
|
||||||
|
12
src/testdir/dumps/Test_diff_scroll_1.dump
Normal file
12
src/testdir/dumps/Test_diff_scroll_1.dump
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |1| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |1| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |2| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |2| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |3| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |3| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |4| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |4| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@34||+1&&| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@34
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|L+0#0000000#5fd7ff255|o|r|e|m| @29
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|i+0#0000000#5fd7ff255|p|s|u|m| @29
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|d+0#0000000#5fd7ff255|o|l|o|r| @29
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|s+0#0000000#5fd7ff255|i|t| @31
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|a+0#0000000#5fd7ff255|m|e|t|,| @29
|
||||||
|
|X+1&#ffffff0|l|e|f|t| @13|5|,|0|-|1| @9|T|o|p| |X+3&&|r|i|g|h|t| @12|5|,|0|-|1| @9|T|o|p
|
||||||
|
|"+0&&|X|r|i|g|h|t|"| |3@1|L|,| |2|6|3|B| @56
|
12
src/testdir/dumps/Test_diff_scroll_2.dump
Normal file
12
src/testdir/dumps/Test_diff_scroll_2.dump
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |1| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |1| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |2| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |2| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |3| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |3| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |4| @28||+1&&| +0#0000e05#a8a8a8255@1|l+0#0000000#ffffff0|i|n|e| |4| @28
|
||||||
|
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@34||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@34
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1>L+0#0000000#5fd7ff255|o|r|e|m| @29
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|i+0#0000000#5fd7ff255|p|s|u|m| @29
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|d+0#0000000#5fd7ff255|o|l|o|r| @29
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|s+0#0000000#5fd7ff255|i|t| @31
|
||||||
|
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|a+0#0000000#5fd7ff255|m|e|t|,| @29
|
||||||
|
|X+1&#ffffff0|l|e|f|t| @13|6|,|1| @11|T|o|p| |X+3&&|r|i|g|h|t| @12|6|,|1| @11|T|o|p
|
||||||
|
|"+0&&|X|r|i|g|h|t|"| |3@1|L|,| |2|6|3|B| @56
|
@ -1535,4 +1535,73 @@ func Test_diff_foldinvert()
|
|||||||
set scrollbind&
|
set scrollbind&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" This was scrolling for 'cursorbind' but 'scrollbind' is more important
|
||||||
|
func Test_diff_scroll()
|
||||||
|
CheckScreendump
|
||||||
|
|
||||||
|
let left =<< trim END
|
||||||
|
line 1
|
||||||
|
line 2
|
||||||
|
line 3
|
||||||
|
line 4
|
||||||
|
|
||||||
|
// Common block
|
||||||
|
// one
|
||||||
|
// containing
|
||||||
|
// four lines
|
||||||
|
|
||||||
|
// Common block
|
||||||
|
// two
|
||||||
|
// containing
|
||||||
|
// four lines
|
||||||
|
END
|
||||||
|
call writefile(left, 'Xleft')
|
||||||
|
let right =<< trim END
|
||||||
|
line 1
|
||||||
|
line 2
|
||||||
|
line 3
|
||||||
|
line 4
|
||||||
|
|
||||||
|
Lorem
|
||||||
|
ipsum
|
||||||
|
dolor
|
||||||
|
sit
|
||||||
|
amet,
|
||||||
|
consectetur
|
||||||
|
adipiscing
|
||||||
|
elit.
|
||||||
|
Etiam
|
||||||
|
luctus
|
||||||
|
lectus
|
||||||
|
sodales,
|
||||||
|
dictum
|
||||||
|
|
||||||
|
// Common block
|
||||||
|
// one
|
||||||
|
// containing
|
||||||
|
// four lines
|
||||||
|
|
||||||
|
Vestibulum
|
||||||
|
tincidunt
|
||||||
|
aliquet
|
||||||
|
nulla.
|
||||||
|
|
||||||
|
// Common block
|
||||||
|
// two
|
||||||
|
// containing
|
||||||
|
// four lines
|
||||||
|
END
|
||||||
|
call writefile(right, 'Xright')
|
||||||
|
let buf = RunVimInTerminal('-d Xleft Xright', {'rows': 12})
|
||||||
|
call term_sendkeys(buf, "\<C-W>\<C-W>jjjj")
|
||||||
|
call VerifyScreenDump(buf, 'Test_diff_scroll_1', {})
|
||||||
|
call term_sendkeys(buf, "j")
|
||||||
|
call VerifyScreenDump(buf, 'Test_diff_scroll_2', {})
|
||||||
|
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
call delete('Xleft')
|
||||||
|
call delete('Xright')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -735,6 +735,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
5155,
|
||||||
/**/
|
/**/
|
||||||
5154,
|
5154,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user