summaryrefslogtreecommitdiff
path: root/alot/ui.py
diff options
context:
space:
mode:
authorWilliam Erik Baxter <web@superscript.com>2012-11-22 16:19:30 -0500
committerPatrick Totzke <patricktotzke@gmail.com>2013-02-19 10:06:28 +0000
commitec63e9b899af1361e0da48d9031f77eccb87d3ea (patch)
treef35980b96bd3fed30620f4e7cd46c7a9c7d3f0ab /alot/ui.py
parentc765ebd6041a845a800cc9fd30705102ae2d040f (diff)
Implement move commands in globals.py. Add --redraw for bclose.
Diffstat (limited to 'alot/ui.py')
-rw-r--r--alot/ui.py19
1 files changed, 7 insertions, 12 deletions
diff --git a/alot/ui.py b/alot/ui.py
index f492c2bd..68f9bf15 100644
--- a/alot/ui.py
+++ b/alot/ui.py
@@ -130,12 +130,7 @@ class UI(object):
clear()
logging.debug("cmdline: '%s'" % cmdline)
# move keys are always passed
- if cmdline.startswith('move '):
- movecmd = cmdline[5:].rstrip()
- logging.debug("GOT MOVE: '%s'" % movecmd)
- if movecmd in ['up', 'down', 'page up', 'page down']:
- return [movecmd]
- elif not self._locked:
+ if cmdline.startswith('move ') or not self._locked:
try:
self.apply_commandline(cmdline)
except CommandParseError, e:
@@ -275,7 +270,7 @@ class UI(object):
self.buffers.append(buf)
self.buffer_focus(buf)
- def buffer_close(self, buf):
+ def buffer_close(self, buf, redraw=True):
"""
closes given :class:`~alot.buffers.Buffer`.
@@ -292,7 +287,7 @@ class UI(object):
buffers.remove(buf)
offset = settings.get('bufferclose_focus_offset')
nextbuffer = buffers[(index + offset) % len(buffers)]
- self.buffer_focus(nextbuffer)
+ self.buffer_focus(nextbuffer, redraw)
buf.cleanup()
else:
string = 'closing buffer %d:%s'
@@ -300,7 +295,7 @@ class UI(object):
buffers.remove(buf)
buf.cleanup()
- def buffer_focus(self, buf):
+ def buffer_focus(self, buf, redraw=True):
"""focus given :class:`~alot.buffers.Buffer`."""
if buf not in self.buffers:
logging.error('tried to focus unknown buffer')
@@ -310,7 +305,7 @@ class UI(object):
self.mode = buf.modename
if isinstance(self.current_buffer, BufferlistBuffer):
self.current_buffer.rebuild()
- self.update()
+ self.update(redraw)
def get_deep_focus(self, startfrom=None):
"""return the bottom most focussed widget of the widget tree"""
@@ -465,7 +460,7 @@ class UI(object):
self.mainloop.set_alarm_in(timeout, clear)
return msgs[0]
- def update(self):
+ def update(self, redraw=True):
"""redraw interface"""
# get the main urwid.Frame widget
mainframe = self.root_widget.original_widget
@@ -486,7 +481,7 @@ class UI(object):
else:
mainframe.set_footer(None)
# force a screen redraw
- if self.mainloop.screen.started:
+ if self.mainloop.screen.started and redraw:
self.mainloop.draw_screen()
def build_statusbar(self):