10
babi.py
10
babi.py
@@ -208,6 +208,9 @@ class Status:
|
||||
self._status = status
|
||||
self._action_counter = 25
|
||||
|
||||
def clear(self) -> None:
|
||||
self._status = ''
|
||||
|
||||
def draw(self, stdscr: 'curses._CursesWindow', margin: Margin) -> None:
|
||||
if margin.footer or self._status:
|
||||
stdscr.insstr(curses.LINES - 1, 0, ' ' * curses.COLS)
|
||||
@@ -226,10 +229,10 @@ class Status:
|
||||
else:
|
||||
self._action_counter -= 24
|
||||
if self._action_counter < 0:
|
||||
self._status = ''
|
||||
self.clear()
|
||||
|
||||
def prompt(self, screen: 'Screen', prompt: str) -> str:
|
||||
self.update('')
|
||||
self.clear()
|
||||
pos = 0
|
||||
buf = ''
|
||||
while True:
|
||||
@@ -953,10 +956,13 @@ def c_main(stdscr: 'curses._CursesWindow', args: argparse.Namespace) -> None:
|
||||
res = _edit(screen)
|
||||
if res == EditResult.EXIT:
|
||||
del screen.files[screen.i]
|
||||
screen.status.clear()
|
||||
elif res == EditResult.NEXT:
|
||||
screen.i += 1
|
||||
screen.status.clear()
|
||||
elif res == EditResult.PREV:
|
||||
screen.i -= 1
|
||||
screen.status.clear()
|
||||
else:
|
||||
raise AssertionError(f'unreachable {res}')
|
||||
|
||||
|
||||
@@ -1078,8 +1078,22 @@ def test_multiple_files(tmpdir):
|
||||
h.await_text('[3/3]')
|
||||
h.await_text('c text')
|
||||
|
||||
# make sure to clear statuses when switching files
|
||||
h.press('^J')
|
||||
h.await_text('unknown key')
|
||||
h.press('M-Right')
|
||||
h.await_text_missing('unknown key')
|
||||
h.press('^J')
|
||||
h.await_text('unknown key')
|
||||
h.press('M-Left')
|
||||
h.await_text_missing('unknown key')
|
||||
|
||||
# also make sure to clear statuses when exiting files
|
||||
h.press('^J')
|
||||
h.await_text('unknown key')
|
||||
h.press('^X')
|
||||
h.await_text('file_a')
|
||||
h.await_text_missing('unknown key')
|
||||
h.press('^X')
|
||||
h.await_text('file_b')
|
||||
h.press('^X')
|
||||
|
||||
Reference in New Issue
Block a user