@@ -8,6 +8,7 @@ use crate::app::App;
88use crate :: app:: CurrentView ;
99use crate :: event:: input:: AppEvent ;
1010use crossterm:: event:: KeyCode ;
11+ use crossterm:: event:: KeyModifiers ;
1112use ratatui:: layout:: Constraint ;
1213use ratatui:: layout:: Layout ;
1314use ratatui:: layout:: Rect ;
@@ -24,10 +25,11 @@ impl View for SessionView {
2425 AppEvent :: Input ( key_event) => key_event,
2526 _ => return delegate_event_to_pane ( app, event) ,
2627 } ;
27-
28+
2829 // handle global session events
2930 match input_event. code {
3031 KeyCode :: Tab => return Some ( AppEvent :: NextPane ) ,
32+ KeyCode :: BackTab => return Some ( AppEvent :: PreviousPane ) ,
3133 KeyCode :: Enter => return Some ( AppEvent :: ToggleFullscreen ) ,
3234 KeyCode :: Char ( char) => match char {
3335 'j' => return Some ( AppEvent :: Scroll ( ( 1 , 0 ) ) ) ,
@@ -209,6 +211,15 @@ impl SessionViewState {
209211 self . current_pane = next % self . panes . len ( ) ;
210212 }
211213
214+ pub ( crate ) fn prev_pane ( & mut self ) {
215+ if self . current_pane == 0 {
216+ self . current_pane = self . panes . len ( ) - 1 ;
217+ } else {
218+ let next = self . current_pane - 1 ;
219+ self . current_pane = next % self . panes . len ( ) ;
220+ }
221+ }
222+
212223 fn current_pane ( & self ) -> & Pane {
213224 self . panes . get ( self . current_pane ) . unwrap ( )
214225 }
0 commit comments