/[iselect]/ISelect.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /ISelect.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 22 by dpavlin, Thu Oct 25 21:14:33 2007 UTC revision 23 by dpavlin, Thu Oct 25 21:27:58 2007 UTC
# Line 248  sub loop { Line 248  sub loop {
248          $self->selected;          $self->selected;
249    
250          my $lines_on_screen = $self->screen->rows - $status_lines;          my $lines_on_screen = $self->screen->rows - $status_lines;
251            my $max_top_screen_line =
252                            $nr_lines > $lines_on_screen ?  $nr_lines - $lines_on_screen : 0;      
253    
254          while(my $key = $self->screen->getch()) {          while(my $key = $self->screen->getch()) {
255    
# Line 273  sub loop { Line 275  sub loop {
275                          # last line on screen?                          # last line on screen?
276                          if ( $pos - $top_screen_line == $lines_on_screen ) {                          if ( $pos - $top_screen_line == $lines_on_screen ) {
277                                  $top_screen_line += $lines_on_screen;                                  $top_screen_line += $lines_on_screen;
           
                                 my $max_top_screen_line =  
                                         $nr_lines > $lines_on_screen ?  $nr_lines - $lines_on_screen : 0;        
   
278                                  $top_screen_line = $max_top_screen_line if $top_screen_line > $max_top_screen_line;                                  $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";  
279                                  $self->redraw_screen;                                  $self->redraw_screen;
280                          }                          }
281                          if ( $pos == $nr_lines ) {                          if ( $pos == $nr_lines ) {
# Line 298  sub loop { Line 295  sub loop {
295                                  $pos = 0;                                  $pos = 0;
296                                  $self->redraw_screen;                                  $self->redraw_screen;
297                          }                          }
298                    } elsif ($key eq 'G' ) {
299                            if ( $top_screen_line == $max_top_screen_line ) {
300                                    if ( $pos == $nr_lines ) {
301                                            $self->error_text( "Already at bottom." );
302                                    } else {
303                                            $self->selected( $nr_lines );
304                                    }
305                            } else {
306                                    $top_screen_line = $max_top_screen_line;
307                                    $pos = $nr_lines;
308                                    $self->redraw_screen;
309                            }
310                  }                  }
311    
312                  if ( length($key) > 1 ) {                  if ( length($key) > 1 ) {

Legend:
Removed from v.22  
changed lines
  Added in v.23

  ViewVC Help
Powered by ViewVC 1.1.26