@@ -894,18 +894,26 @@ def _handle_input(self):
894894 self ._trend_tracker .toggle ()
895895
896896 elif ch == curses .KEY_LEFT or ch == curses .KEY_UP :
897- # Navigate to previous thread in PER_THREAD mode
898- if self .view_mode == "PER_THREAD" and len (self .thread_ids ) > 0 :
899- self .current_thread_index = (
900- self .current_thread_index - 1
901- ) % len (self .thread_ids )
897+ # Navigate to previous thread in PER_THREAD mode, or switch from ALL to PER_THREAD
898+ if len (self .thread_ids ) > 0 :
899+ if self .view_mode == "ALL" :
900+ self .view_mode = "PER_THREAD"
901+ self .current_thread_index = 0
902+ else :
903+ self .current_thread_index = (
904+ self .current_thread_index - 1
905+ ) % len (self .thread_ids )
902906
903907 elif ch == curses .KEY_RIGHT or ch == curses .KEY_DOWN :
904- # Navigate to next thread in PER_THREAD mode
905- if self .view_mode == "PER_THREAD" and len (self .thread_ids ) > 0 :
906- self .current_thread_index = (
907- self .current_thread_index + 1
908- ) % len (self .thread_ids )
908+ # Navigate to next thread in PER_THREAD mode, or switch from ALL to PER_THREAD
909+ if len (self .thread_ids ) > 0 :
910+ if self .view_mode == "ALL" :
911+ self .view_mode = "PER_THREAD"
912+ self .current_thread_index = 0
913+ else :
914+ self .current_thread_index = (
915+ self .current_thread_index + 1
916+ ) % len (self .thread_ids )
909917
910918 def init_curses (self , stdscr ):
911919 """Initialize curses display and suppress stdout/stderr."""
0 commit comments