better arrow nav consistency; disable mouse mode

pull/4/head
Blake DeMarcy 2017-04-13 04:50:05 -05:00
parent ea10f0e350
commit 4a2665a549
1 changed files with 36 additions and 9 deletions

View File

@ -228,7 +228,8 @@ class App(object):
title=self.prefs["frame_title"], title=self.prefs["frame_title"],
**frame_theme() **frame_theme()
)), )),
colormap) palette=colormap,
handle_mouse=False)
self.index() self.index()
@ -295,7 +296,7 @@ class App(object):
self.set_default_header() self.set_default_header()
def remove_overlays(self): def remove_overlays(self, *_):
""" """
Remove ALL urwid.Overlay objects which are currently covering the base Remove ALL urwid.Overlay objects which are currently covering the base
widget. widget.
@ -579,7 +580,7 @@ class App(object):
def index(self): def index(self, *_):
""" """
Browse the index. Browse the index.
""" """
@ -622,10 +623,34 @@ class App(object):
self.box.set_focus(len(self.walker) - 5) self.box.set_focus(len(self.walker) - 5)
def back(self, and_quit=True): def back(self, terminate=False):
if app.mode == "index" and and_quit: if app.mode == "index" and terminate:
frilly_exit() frilly_exit()
elif app.mode == "thread":
elif self.window_split:
# display a confirmation dialog before killing off an in-progress post
buttons = [
urwid.Text(("bold", "Discard current post?")),
urwid.Divider(),
cute_button(("10" ,">> Yes"), lambda _: [
self.remove_overlays(),
self.index()
]),
cute_button(("30", "<< No"), self.remove_overlays)
]
# TODO: create a central routine for creating popups. this is getting really ridiculous
popup = OptionsMenu(
urwid.ListBox(urwid.SimpleFocusListWalker(buttons)),
**frame_theme())
self.loop.widget = urwid.Overlay(
popup, self.loop.widget,
align=("relative", 50),
valign=("relative", 25),
width=30, height=6)
else:
self.index() self.index()
@ -1246,8 +1271,10 @@ class OptionsMenu(urwid.LineBox):
elif key in ["shift up", "K", "P"]: elif key in ["shift up", "K", "P"]:
for x in range(5): for x in range(5):
self.keypress(size, "up") self.keypress(size, "up")
elif key.lower() == "q": elif key.lower() in ["left", "h", "q"]:
app.loop.widget = app.loop.widget[0] app.loop.widget = app.loop.widget[0]
elif key.lower() in ["right", "l"]:
return self.keypress(size, "enter")
elif key in ["ctrl n", "j", "n"]: elif key in ["ctrl n", "j", "n"]:
return self.keypress(size, "down") return self.keypress(size, "down")
elif key in ["ctrl p", "k", "p"]: elif key in ["ctrl p", "k", "p"]:
@ -1280,7 +1307,7 @@ class ActionBox(urwid.ListBox):
self._keypress_up(size) self._keypress_up(size)
elif key in ["h", "left"]: elif key in ["h", "left"]:
app.back(False) app.back()
elif key in ["l", "right"]: elif key in ["l", "right"]:
self.keypress(size, "enter") self.keypress(size, "enter")
@ -1304,7 +1331,7 @@ class ActionBox(urwid.ListBox):
app.general_help() app.general_help()
elif key.lower() == "q": elif key.lower() == "q":
app.back() app.back(True)
def frilly_exit(): def frilly_exit():