]> git.cworth.org Git - sup/commitdiff
bugfix: hidden threads don't actually reappear when asked to unhide
authorWilliam Morgan <wmorgan-sup@masanjin.net>
Fri, 25 Jan 2008 02:48:44 +0000 (18:48 -0800)
committerWilliam Morgan <wmorgan-sup@masanjin.net>
Fri, 25 Jan 2008 02:48:44 +0000 (18:48 -0800)
In ThreadIndexMode, the logic was a little wrong. @hidden_threads isn't
keyed by Messages but by Threads, and for incoming messages that may
belong to a thread, it's necessary to find the corresponding thread first.

This was resulting in threads that had been archived in inbox-mode not
reappearing when new messages that belonged to them arrived.

lib/sup/modes/thread-index-mode.rb

index 7686098454743312436277f130160ff8c6401b78..0809d54b0b7a7346ce0415746b05050b376cca96 100644 (file)
@@ -513,14 +513,12 @@ EOS
 protected
 
   def add_or_unhide m
-    if @hidden_threads[m]
-      @hidden_threads.delete m
-      ## now it will re-appear when #update is called
-    else
-      @ts_mutex.synchronize do
-        return unless is_relevant?(m) || @ts.is_relevant?(m)
+    @ts_mutex.synchronize do
+      if (is_relevant?(m) || @ts.is_relevant?(m)) && !@ts.contains?(m)
         @ts.load_thread_for_message m
       end
+
+      @hidden_threads.delete @ts.thread_for(m)
     end
 
     update