--- ISelect.pm 2007/10/25 18:39:49 15 +++ ISelect.pm 2007/10/25 19:21:12 16 @@ -262,7 +262,12 @@ # last line on screen? if ( $pos - $top_screen_line == $lines_on_screen ) { $top_screen_line += $lines_on_screen; - $top_screen_line = $#lines - $lines_on_screen if $top_screen_line >= $#lines - $lines_on_screen; + + my $max_top_screen_line = + $nr_lines > $lines_on_screen ? $nr_lines - $lines_on_screen : 0; + + $top_screen_line = $max_top_screen_line if $top_screen_line > $max_top_screen_line; + warn "max_top_screen_line = $max_top_screen_line top_screen_line = $top_screen_line\n"; $self->redraw_screen; } $self->selected( $top_screen_line + $lines_on_screen - $pos );