self.cc.activity_stack[-1] = activity
def handle_key(self, ch):
- if ch in {ord('q'), ord('Q'), 13}:
+ if ch in {ord('q'), ord('Q'), 10, 13}:
return 'quit'
class EscMenu(Menu):
self.down_screen()
elif ch in {ord('-'), ord('b'), ord('B'), curses.KEY_PPAGE}:
self.up_screen()
- elif ch in {13, curses.KEY_DOWN}:
+ elif ch == curses.KEY_DOWN:
self.down_line()
+ elif ch in {10, 13}:
+ if not self.down_line():
+ return 'quit'
elif ch in {curses.KEY_UP}:
self.up_line()
elif ch in {ord('0'), curses.KEY_HOME}:
self.cc.print_at(self.cc.scr_h - 1, 0, sl_rendered)
def move_to(self, pos):
+ old_linepos = self.linepos
self.linepos = pos
self.linepos = max(self.linepos, self.cc.scr_h - 1)
self.linepos = min(self.linepos, len(self.lines))
+ return self.linepos != old_linepos
def move_by(self, delta):
- self.move_to(self.linepos + delta)
-
- def down_screen(self): self.move_by(self.cc.scr_h - 1)
- def up_screen(self): self.move_by(-(self.cc.scr_h - 1))
- def down_line(self): self.move_by(+1)
- def up_line(self): self.move_by(-1)
- def goto_top(self): self.move_to(0)
- def goto_bottom(self): self.move_to(len(self.lines))
+ return self.move_to(self.linepos + delta)
+
+ def down_screen(self): return self.move_by(self.cc.scr_h - 1)
+ def up_screen(self): return self.move_by(-(self.cc.scr_h - 1))
+ def down_line(self): return self.move_by(+1)
+ def up_line(self): return self.move_by(-1)
+ def goto_top(self): return self.move_to(0)
+ def goto_bottom(self): return self.move_to(len(self.lines))
class StatusFile(ObjectFile):
def __init__(self, cc, feed, title):