Fix cursor moving one line up when resizing

This commit is contained in:
Kovid Goyal
2017-09-20 10:59:31 +05:30
parent 564f19d248
commit 3ca45ab241
7 changed files with 85 additions and 44 deletions

View File

@@ -257,7 +257,7 @@ class TestDataTypes(BaseTest):
def rewrap(self, lb, lb2):
hb = HistoryBuf(lb2.ynum, lb2.xnum)
cy = lb.rewrap(lb2, hb)
return hb, cy
return hb, cy[1]
def test_rewrap_simple(self):
' Same width buffers '
@@ -268,7 +268,7 @@ class TestDataTypes(BaseTest):
self.ae(lb2.line(i), lb.line(i))
lb2 = LineBuf(8, 5)
cy = self.rewrap(lb, lb2)[1]
self.ae(cy, 4)
self.ae(cy, 5)
for i in range(lb.ynum):
self.ae(lb2.line(i), lb.line(i))
empty = LineBuf(1, lb2.xnum)
@@ -276,7 +276,7 @@ class TestDataTypes(BaseTest):
self.ae(str(lb2.line(i)), str(empty.line(0)))
lb2 = LineBuf(3, 5)
cy = self.rewrap(lb, lb2)[1]
self.ae(cy, 2)
self.ae(cy, 3)
for i in range(lb2.ynum):
self.ae(lb2.line(i), lb.line(i + 2))

View File

@@ -223,14 +223,19 @@ class TestScreen(BaseTest):
s.resize(5, 1)
self.ae(str(s.line(0)), '4')
hb = s.historybuf
for i in range(hb.ynum):
self.ae(str(hb.line(i)), '4' if i == 0 else '3')
s = self.create_screen(scrollback=6)
s.draw(''.join([str(i) * s.columns for i in range(s.lines*2)]))
self.ae(str(s.line(4)), '9'*5)
self.ae(str(hb), '3\n3\n3\n3\n3\n2')
s = self.create_screen(scrollback=20)
s.draw(''.join(str(i) * s.columns for i in range(s.lines*2)))
self.ae(str(s.linebuf), '55555\n66666\n77777\n88888\n99999')
s.resize(5, 2)
self.ae(str(s.line(3)), '9')
self.ae(str(s.line(4)), '')
self.ae(str(s.linebuf), '88\n88\n99\n99\n9')
def test_cursor_after_resize(self):
s = self.create_screen()
s.draw('123'), s.linefeed(), s.carriage_return(), s.draw('123'), s.linefeed(), s.carriage_return()
y_before = s.cursor.y
s.resize(s.lines, s.columns-1)
self.ae(y_before, s.cursor.y)
def test_tab_stops(self):
# Taken from vttest/main.c