@@ -36,7 +36,11 @@ impl View for SessionView {
3636 return delegate_event_to_pane ( app, event) ;
3737 }
3838
39- let multiplier = if KeyModifiers :: SHIFT == input_event. modifiers & KeyModifiers :: SHIFT { 10 } else { 1 } ;
39+ let multiplier = if KeyModifiers :: SHIFT == input_event. modifiers & KeyModifiers :: SHIFT {
40+ 10
41+ } else {
42+ 1
43+ } ;
4044
4145 // handle global session events
4246 match input_event. code {
@@ -73,22 +77,18 @@ impl View for SessionView {
7377 'N' => Some ( AppEvent :: StepOver ) ,
7478 'o' => Some ( AppEvent :: StepOut ) ,
7579 'p' => Some ( AppEvent :: ChangeSessionViewMode ( SessionViewMode :: History ) ) ,
80+ 'd' => Some ( AppEvent :: Disconnect ) ,
7681 _ => None ,
7782 } ,
7883 _ => None ,
7984 } ,
8085 SessionViewMode :: History => match input_event. code {
81- KeyCode :: Esc => Some ( AppEvent :: ChangeView ( SelectedView :: Session ) ) ,
86+ KeyCode :: Esc => escape ( app ) ,
8287 KeyCode :: Char ( c) => match c {
8388 'n' => Some ( AppEvent :: HistoryNext ) ,
8489 'p' => Some ( AppEvent :: HistoryPrevious ) ,
85- 'b' => {
86- if app. listening_status == ListenStatus :: Refusing {
87- Some ( AppEvent :: Listen )
88- } else {
89- Some ( AppEvent :: ChangeSessionViewMode ( SessionViewMode :: Current ) )
90- }
91- }
90+ 'd' => Some ( AppEvent :: Disconnect ) ,
91+ 'b' => escape ( app) ,
9292 _ => None ,
9393 } ,
9494 _ => None ,
@@ -138,6 +138,14 @@ impl View for SessionView {
138138 }
139139}
140140
141+ fn escape ( app : & App ) -> Option < AppEvent > {
142+ if app. listening_status == ListenStatus :: Refusing {
143+ Some ( AppEvent :: Listen )
144+ } else {
145+ Some ( AppEvent :: ChangeSessionViewMode ( SessionViewMode :: Current ) )
146+ }
147+ }
148+
141149fn split_rows ( panes : & Vec < & Pane > , area : Rect ) -> Rc < [ Rect ] > {
142150 let mut vertical_constraints = Vec :: new ( ) ;
143151
0 commit comments