diff --git a/libmproxy/console/flowlist.py b/libmproxy/console/flowlist.py index aa3fd7184..c7a0d1b74 100644 --- a/libmproxy/console/flowlist.py +++ b/libmproxy/console/flowlist.py @@ -47,6 +47,10 @@ class EventListBox(urwid.ListBox): if key == "C": self.master.clear_events() key = None + elif key == "G": + self.set_focus(0) + elif key == "g": + self.set_focus(len(self.master.eventlist)-1) return urwid.ListBox.keypress(self, size, key) diff --git a/libmproxy/console/grideditor.py b/libmproxy/console/grideditor.py index e5e644037..5a2da59f9 100644 --- a/libmproxy/console/grideditor.py +++ b/libmproxy/console/grideditor.py @@ -294,6 +294,7 @@ class GridWalker(urwid.ListWalker): def set_focus(self, focus): self.stop_edit() self.focus = focus + self._modified() def get_next(self, pos): if pos+1 >= len(self.lst): @@ -414,6 +415,10 @@ class GridEditor(urwid.WidgetWrap): res.append(i[0]) self.callback(self.data_out(res), *self.cb_args, **self.cb_kwargs) signals.pop_view_state.send(self) + elif key == "G": + self.walker.set_focus(0) + elif key == "g": + self.walker.set_focus(len(self.walker.lst)-1) elif key in ["h", "left"]: self.walker.left() elif key in ["l", "right"]: @@ -459,10 +464,10 @@ class GridEditor(urwid.WidgetWrap): ("a", "add row after cursor"), ("d", "delete row"), ("e", "spawn external editor on current field"), - ("q", "return to flow view"), + ("q", "save changes and exit editor"), ("r", "read value from file"), ("R", "read unescaped value from file"), - ("esc", "return to flow view/exit field edit mode"), + ("esc", "save changes and exit editor"), ("tab", "next field"), ("enter", "edit field"), ] diff --git a/libmproxy/console/help.py b/libmproxy/console/help.py index 6d36ee710..cbd5bef8b 100644 --- a/libmproxy/console/help.py +++ b/libmproxy/console/help.py @@ -103,4 +103,8 @@ class HelpView(urwid.ListBox): return None elif key == "?": key = None + elif key == "G": + self.set_focus(0) + elif key == "g": + self.set_focus(len(self.body.contents)) return urwid.ListBox.keypress(self, size, key)