File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -207,6 +207,14 @@ impl TableView {
207207 self . table_state. select_prev_col( ) ;
208208 self . table_state. update_table_state( ) ;
209209 }
210+ UserEvent :: ScrollDown => {
211+ self . table_state. scroll_down( ) ;
212+ self . table_state. update_table_state( ) ;
213+ }
214+ UserEvent :: ScrollUp => {
215+ self . table_state. scroll_up( ) ;
216+ self . table_state. update_table_state( ) ;
217+ }
210218 UserEvent :: QuickFilter => {
211219 self . start_filtering( ) ;
212220 }
Original file line number Diff line number Diff line change @@ -220,6 +220,30 @@ impl TableState {
220220 self . offset_col = self . total_cols - count;
221221 }
222222
223+ pub fn scroll_down ( & mut self ) {
224+ if self . total_rows == 0 {
225+ return ;
226+ }
227+ if self . offset_row + self . height < self . total_rows {
228+ self . offset_row += 1 ;
229+ if self . selected_row < self . offset_row {
230+ self . selected_row = self . offset_row ;
231+ }
232+ }
233+ }
234+
235+ pub fn scroll_up ( & mut self ) {
236+ if self . total_rows == 0 {
237+ return ;
238+ }
239+ if self . offset_row > 0 {
240+ self . offset_row -= 1 ;
241+ if self . selected_row - self . offset_row >= self . height {
242+ self . selected_row = self . offset_row + self . height - 1 ;
243+ }
244+ }
245+ }
246+
223247 pub fn select_index ( & mut self , index : usize , offset_index : usize ) {
224248 if index >= self . total_rows {
225249 return ;
You can’t perform that action at this time.
0 commit comments