1*4a137b45SBram Moolenaar" Test for 'scrollbind' causing an unexpected scroll of one of the windows. 2*4a137b45SBram Moolenaarfunc Test_scrollbind() 3*4a137b45SBram Moolenaar " We don't want the status line to cause problems: 4*4a137b45SBram Moolenaar set laststatus=0 5*4a137b45SBram Moolenaar let totalLines = &lines * 20 6*4a137b45SBram Moolenaar let middle = totalLines / 2 7*4a137b45SBram Moolenaar new | only 8*4a137b45SBram Moolenaar for i in range(1, totalLines) 9*4a137b45SBram Moolenaar call setline(i, 'LINE ' . i) 10*4a137b45SBram Moolenaar endfor 11*4a137b45SBram Moolenaar exe string(middle) 12*4a137b45SBram Moolenaar normal zt 13*4a137b45SBram Moolenaar normal M 14*4a137b45SBram Moolenaar aboveleft vert new 15*4a137b45SBram Moolenaar for i in range(1, totalLines) 16*4a137b45SBram Moolenaar call setline(i, 'line ' . i) 17*4a137b45SBram Moolenaar endfor 18*4a137b45SBram Moolenaar exe string(middle) 19*4a137b45SBram Moolenaar normal zt 20*4a137b45SBram Moolenaar normal M 21*4a137b45SBram Moolenaar " Execute the following two commands at once to reproduce the problem. 22*4a137b45SBram Moolenaar setl scb | wincmd p 23*4a137b45SBram Moolenaar setl scb 24*4a137b45SBram Moolenaar wincmd w 25*4a137b45SBram Moolenaar let topLineLeft = line('w0') 26*4a137b45SBram Moolenaar wincmd p 27*4a137b45SBram Moolenaar let topLineRight = line('w0') 28*4a137b45SBram Moolenaar setl noscrollbind 29*4a137b45SBram Moolenaar wincmd p 30*4a137b45SBram Moolenaar setl noscrollbind 31*4a137b45SBram Moolenaar call assert_equal(0, topLineLeft - topLineRight) 32*4a137b45SBram Moolenaarendfunc 33