sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 6901568459777b5f13f79b8b2a496a59bba27689
parent d200de299e8a42d202481088a202af8e72913e4a
Author: William Morgan <wmorgan-sup@masanjin.net>
Date:   Thu,  4 Jun 2009 23:35:06 -0400

Merge branch 'master' into next

Diffstat:
M lib/sup/modes/thread-view-mode.rb | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
@@ -234,12 +234,16 @@ EOS
   ## view.
   def activate_chunk
     chunk = @chunk_lines[curpos] or return
-    layout = 
-      if chunk.is_a?(Message)
-        @layout[chunk]
-      elsif chunk.expandable?
-        @chunk_layout[chunk]
-      end
+    if chunk.is_a? Chunk::Text
+      ## if the cursor is over a text region, expand/collapse the
+      ## entire message
+      chunk = @message_lines[curpos]
+    end
+    layout = if chunk.is_a?(Message)
+      @layout[chunk]
+    elsif chunk.expandable?
+      @chunk_layout[chunk]
+    end
     if layout
       layout.state = (layout.state != :closed ? :closed : :open)
       #cursor_down if layout.state == :closed # too annoying
@@ -247,6 +251,10 @@ EOS
     elsif chunk.viewable?
       view chunk
     end
+    if chunk.is_a?(Message)
+      jump_to_message chunk
+      jump_to_next_open
+    end
   end
 
   def edit_as_new