sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit f31ee51a71830dd5fc9dc8da68c799e5a02f162d
parent e61c1b94d1d57ab255daa931328cc2e4f34914ee
Author: Christopher Corley <cscorley@ua.edu>
Date:   Sat, 15 Mar 2014 12:45:49 -0500

Add continuous scrolling to line cursor mode

Add continuous scrolling to line cursor mode

Do not move cursor if more lines do not exist (yet)

Revert "Do not move cursor if more lines do not exist (yet)"

This reverts commit 7539274f31c819f7227abd063883768d02f0615a.

Does not allow you to scroll to end of message.

Diffstat:
M lib/sup/modes/line_cursor_mode.rb | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/lib/sup/modes/line_cursor_mode.rb b/lib/sup/modes/line_cursor_mode.rb
@@ -94,9 +94,16 @@ protected
     call_load_more_callbacks buffer.content_height if @curpos >= lines - [buffer.content_height/2,1].max
     return false unless @curpos < lines - 1
 
-    if @curpos >= botline - 1
-      page_down
-      set_cursor_pos topline
+    if @curpos == botline - 3
+      # load more lines, one at a time.
+      jump_to_line topline + 1
+      @curpos += 1
+      unless buffer.dirty?
+        draw_line @curpos - 1
+        draw_line @curpos
+        set_status
+        buffer.commit
+      end
     else
       @curpos += 1
       unless buffer.dirty?
@@ -111,10 +118,15 @@ protected
 
   def cursor_up
     return false unless @curpos > @cursor_top
-    if @curpos == topline
-      old_topline = topline
-      page_up
-      set_cursor_pos [old_topline - 1, topline].max
+    if @curpos == topline + 3
+      jump_to_line topline - 1
+      @curpos -= 1
+      unless buffer.dirty?
+        draw_line @curpos + 1
+        draw_line @curpos
+        set_status
+        buffer.commit
+      end
     else
       @curpos -= 1
       unless buffer.dirty?