From ab807bc1c993adc16ce2c5dee0551fdb2d4eff67 Mon Sep 17 00:00:00 2001 From: wmorgan Date: Thu, 18 Jan 2007 01:50:45 +0000 Subject: [PATCH] bugfix: jump_to_first_open git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@263 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- lib/sup/modes/thread-index-mode.rb | 2 +- lib/sup/modes/thread-view-mode.rb | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/sup/modes/thread-index-mode.rb b/lib/sup/modes/thread-index-mode.rb index cbfd413..c6baa53 100644 --- a/lib/sup/modes/thread-index-mode.rb +++ b/lib/sup/modes/thread-index-mode.rb @@ -61,7 +61,7 @@ class ThreadIndexMode < LineCursorMode mode = ThreadViewMode.new t, @hidden_labels BufferManager.spawn t.subj, mode BufferManager.draw_screen - mode.jump_to_next_open + mode.jump_to_first_open BufferManager.draw_screen # lame TODO: make this unnecessary ## the first draw_screen is needed before topline and botline ## are set, and the second to show the cursor having moved diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb index 3c02dc7..57d3de4 100644 --- a/lib/sup/modes/thread-view-mode.rb +++ b/lib/sup/modes/thread-view-mode.rb @@ -168,10 +168,19 @@ class ThreadViewMode < LineCursorMode end end + def jump_to_first_open + m = @message_lines[0] or return + if @layout[m].state != :closed + jump_to_message m + else + jump_to_next_open + end + end + def jump_to_next_open m = @message_lines[curpos] or return while nextm = @layout[m].next - break if @layout[nextm].state == :open + break if @layout[nextm].state != :closed m = nextm end jump_to_message nextm if nextm -- 2.43.0