/[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 15 by dpavlin, Thu Oct 25 18:39:49 2007 UTC revision 19 by dpavlin, Thu Oct 25 19:37:10 2007 UTC
# Line 80  sub full_line { Line 80  sub full_line {
80          my $cols = $self->screen->cols;          my $cols = $self->screen->cols;
81    
82          my $t = shift;          my $t = shift;
83    
84            $t =~ s/{s}//;
85    
86          $t = '' unless defined $t;          $t = '' unless defined $t;
87          $t = substr($t,0,$cols) if length($t) > $cols;          $t = substr($t,0,$cols) if length($t) > $cols;
88          return $t . (" " x ($cols - length($t)));          return $t . (" " x ($cols - length($t)));
# Line 221  sub loop { Line 224  sub loop {
224          my $callback = shift;          my $callback = shift;
225          confess "expect callback as first arg" unless ref($callback) eq 'CODE';          confess "expect callback as first arg" unless ref($callback) eq 'CODE';
226    
227          my @lines = $self->lines;          my @lines = @{ $self->lines };
228    
229          # find which lines are selectable in input file          # find which lines are selectable in input file
230          for my $l (0 .. $#lines) {          for my $l (0 .. $#lines) {
# Line 262  sub loop { Line 265  sub loop {
265                          # last line on screen?                          # last line on screen?
266                          if ( $pos - $top_screen_line == $lines_on_screen ) {                          if ( $pos - $top_screen_line == $lines_on_screen ) {
267                                  $top_screen_line += $lines_on_screen;                                  $top_screen_line += $lines_on_screen;
268                                  $top_screen_line = $#lines - $lines_on_screen if $top_screen_line >= $#lines - $lines_on_screen;          
269                                    my $max_top_screen_line =
270                                            $nr_lines > $lines_on_screen ?  $nr_lines - $lines_on_screen : 0;      
271    
272                                    $top_screen_line = $max_top_screen_line if $top_screen_line > $max_top_screen_line;
273                                    warn "max_top_screen_line = $max_top_screen_line top_screen_line = $top_screen_line\n";
274                                  $self->redraw_screen;                                  $self->redraw_screen;
275                          }                          }
276                          $self->selected( $top_screen_line + $lines_on_screen - $pos );                          $self->selected( $top_screen_line + $lines_on_screen - $pos );

Legend:
Removed from v.15  
changed lines
  Added in v.19

  ViewVC Help
Powered by ViewVC 1.1.26