sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 2a84e2129114a7e736fb19b93a5bc117b20af727
parent c7ffc490fcd51a321a3ab60db129415fc1788b47
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Tue, 23 Jan 2007 15:58:51 +0000

bugfix


git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@276 5c8cc53c-5e98-4d25-b20a-d8db53a31250

Diffstat:
M lib/sup/modes/contact-list-mode.rb | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/lib/sup/modes/contact-list-mode.rb b/lib/sup/modes/contact-list-mode.rb
@@ -35,7 +35,7 @@ class ContactListMode < LineCursorMode
   def alias
     p = @contacts[curpos] or return
     alias_contact p
-    regen_text
+    update
   end
 
   def lines; @text.length; end
@@ -50,7 +50,7 @@ class ContactListMode < LineCursorMode
 
   def multi_toggle_tagged threads
     @tags.drop_all_tags
-    regen_text
+    update
   end
 
   def apply_to_tagged; @tags.apply_to_tagged; end
@@ -58,7 +58,7 @@ class ContactListMode < LineCursorMode
   def load_more num=LOAD_MORE_CONTACTS_NUM
     @num += num
     load
-    regen_text
+    update
     BufferManager.flash "Added #{num} contacts."
   end
 
@@ -96,7 +96,7 @@ class ContactListMode < LineCursorMode
   def load_in_background
     Redwood::reporting_thread do
       load
-      regen_text
+      update
       BufferManager.draw_screen
     end
   end
@@ -113,9 +113,14 @@ class ContactListMode < LineCursorMode
   
 protected
 
+  def update
+    regen_text
+    buffer.mark_dirty if buffer
+  end
+
   def update_text_for_line line
     @text[line] = text_for_contact @contacts[line]
-    buffer.mark_dirty
+    buffer.mark_dirty if buffer
   end
 
   def text_for_contact p
@@ -133,7 +138,6 @@ protected
     end
 
     @text = @contacts.map { |p| text_for_contact p }
-    buffer.mark_dirty
   end
 end