From de31043b08dd02433cb3e0d953e11d9f463c74db Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 19 Jan 2003 19:32:10 +0000 Subject: [PATCH] ... --- vs.pl | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/vs.pl b/vs.pl index 0063391..0ac0fb5 100755 --- a/vs.pl +++ b/vs.pl @@ -121,6 +121,14 @@ for(;;) { } elsif ($key eq ">" && $file_window_width > 1) { $file_window_width--; recalc_windows; + } elsif ($key eq "j") { + $file_window->key(KEY_DOWN); + } elsif ($key eq "k") { + $file_window->key(KEY_UP); + } elsif ($key eq "h") { + $file_window->key(KEY_LEFT); + } elsif ($key eq "l") { + $file_window->key(KEY_RIGHT); } else { $focused_window->key($key); } @@ -347,11 +355,15 @@ sub redraw_line($$) { sub redraw($) { my $w = shift @_; - $w->{"win"}->idlok(1); + my $win = $w->{"win"}; + # Window size might have changed... + if ($w->{"1st"} + $w->{"h"} > $w->{"n"}) { $w->{"1st"} = $w->{"n"} - $w->{"h"}; } + if ($w->{"1st"} < 0) { $w->{"1st"} = 0; } + $win->idlok(1); for (my $i=0; $i<$w->{"h"}; $i++) { $w->redraw_line($w->{"1st"} + $i); } - $w->{"win"}->noutrefresh; + $win->noutrefresh; } sub go($$) { @@ -402,9 +414,7 @@ sub select($) { for (my $i=0; $i<$w->{"n"}; $i++) { if ($w->{"flist"}->[$i] eq $back) { $w->{"i"} = $i; - if ($i > $w->{"h"}/2) { $w->{"1st"} = $i - int($w->{"h"}/2); } - if ($w->{"1st"} + $w->{"h"} > $w->{"n"}) { $w->{"1st"} = $w->{"n"} - $w->{"h"}; } - if ($w->{"1st"} < 0) { $w->{"1st"} = 0; } + $w->{"1st"} = $i - int($w->{"h"}/2); last; } } -- 2.39.2