@@ -12,6 +12,7 @@ use crate::app::ListenStatus;
1212use crate :: app:: SelectedView ;
1313use crate :: event:: input:: AppEvent ;
1414use crossterm:: event:: KeyCode ;
15+ use crossterm:: event:: KeyModifiers ;
1516use ratatui:: layout:: Constraint ;
1617use ratatui:: layout:: Layout ;
1718use ratatui:: layout:: Rect ;
@@ -35,11 +36,17 @@ impl View for SessionView {
3536 return delegate_event_to_pane ( app, event) ;
3637 }
3738
39+ let multiplier = if KeyModifiers :: SHIFT == input_event. modifiers & KeyModifiers :: SHIFT { 10 } else { 1 } ;
40+
3841 // handle global session events
3942 match input_event. code {
4043 KeyCode :: Tab => return Some ( AppEvent :: NextPane ) ,
4144 KeyCode :: BackTab => return Some ( AppEvent :: PreviousPane ) ,
4245 KeyCode :: Enter => return Some ( AppEvent :: ToggleFullscreen ) ,
46+ KeyCode :: Left => return Some ( AppEvent :: Scroll ( ( 0 , -1 * multiplier) ) ) ,
47+ KeyCode :: Right => return Some ( AppEvent :: Scroll ( ( 0 , 1 * multiplier) ) ) ,
48+ KeyCode :: Up => return Some ( AppEvent :: Scroll ( ( -1 * multiplier, 0 ) ) ) ,
49+ KeyCode :: Down => return Some ( AppEvent :: Scroll ( ( 1 * multiplier, 0 ) ) ) ,
4350 KeyCode :: Char ( char) => match char {
4451 'e' => return Some ( AppEvent :: EvalStart ) ,
4552 'j' => return Some ( AppEvent :: Scroll ( ( 1 , 0 ) ) ) ,
0 commit comments