@@ -327,20 +327,15 @@ impl<'a> OmaPager<'a> {
327
327
self . tips = self . ui_text . searct_tips_with_query ( & query) ;
328
328
continue ;
329
329
}
330
- self . vertical_scroll = 0 ;
331
- self . vertical_scroll_state =
332
- self . vertical_scroll_state . position ( self . vertical_scroll ) ;
330
+ self . goto_begin ( ) ;
333
331
}
334
332
KeyCode :: Char ( 'G' ) => {
335
333
if self . mode == TuiMode :: SearchInputText {
336
334
query. push ( 'G' ) ;
337
335
self . tips = self . ui_text . searct_tips_with_query ( & query) ;
338
336
continue ;
339
337
}
340
- self . vertical_scroll =
341
- self . inner_len . saturating_sub ( self . area_height . into ( ) ) ;
342
- self . vertical_scroll_state =
343
- self . vertical_scroll_state . position ( self . vertical_scroll ) ;
338
+ self . goto_end ( ) ;
344
339
}
345
340
KeyCode :: Enter => {
346
341
if self . mode != TuiMode :: SearchInputText {
@@ -457,6 +452,12 @@ impl<'a> OmaPager<'a> {
457
452
KeyCode :: PageDown => {
458
453
self . page_down ( ) ;
459
454
}
455
+ KeyCode :: End => {
456
+ self . goto_end ( ) ;
457
+ }
458
+ KeyCode :: Home => {
459
+ self . goto_begin ( ) ;
460
+ }
460
461
_ => { }
461
462
}
462
463
}
@@ -473,7 +474,7 @@ impl<'a> OmaPager<'a> {
473
474
let pos = self
474
475
. vertical_scroll
475
476
. saturating_add ( self . area_height as usize ) ;
476
- if pos <= self . inner_len {
477
+ if pos < self . inner_len {
477
478
self . vertical_scroll = pos;
478
479
} else {
479
480
return ;
@@ -488,6 +489,16 @@ impl<'a> OmaPager<'a> {
488
489
self . vertical_scroll_state = self . vertical_scroll_state . position ( self . vertical_scroll ) ;
489
490
}
490
491
492
+ fn goto_end ( & mut self ) {
493
+ self . vertical_scroll = self . inner_len . saturating_sub ( self . area_height . into ( ) ) ;
494
+ self . vertical_scroll_state = self . vertical_scroll_state . position ( self . vertical_scroll ) ;
495
+ }
496
+
497
+ fn goto_begin ( & mut self ) {
498
+ self . vertical_scroll = 0 ;
499
+ self . vertical_scroll_state = self . vertical_scroll_state . position ( 0 ) ;
500
+ }
501
+
491
502
fn right ( & mut self ) {
492
503
let width = self . writer . get_length ( ) ;
493
504
0 commit comments