KEYBINDINGS = {
'KEY_BACKSPACE': 'prompt_backspace',
'KEY_ENTER': 'prompt_enter',
- 'KEY_UP': 'scroll_up',
- 'KEY_DOWN': 'scroll_down',
+ 'KEY_PGUP': 'scroll_up',
+ 'KEY_PGDOWN': 'scroll_down',
}
IRCSPEC_LINE_SEPARATOR = b'\r\n'
self._draw_prompt()
def _kb__scroll_up(self) -> None:
- if len(self._log_buffer) > self._upscroll:
- self._upscroll += 1
+ self._upscroll = min(len(self._log_buffer) - 1,
+ self._upscroll + self._y_pgscroll)
self._draw_log()
def _kb__scroll_down(self) -> None:
- if self._upscroll > 1:
- self._upscroll -= 1
+ self._upscroll = max(0, self._upscroll - self._y_pgscroll)
self._draw_log()
def _calc_and_draw_all(self) -> None:
self._term.calc_geometry()
self._y_prompt = self._term.size.y - 1
self._y_separator = self._term.size.y - 2
+ self._y_pgscroll = self._y_separator // 2
self._draw_frame()
self._draw_log()
self._draw_prompt()