aboutsummaryrefslogtreecommitdiffstats
path: root/action.c
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-06-03 13:29:29 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-06-03 13:29:29 +0000
commite356149db43d8e43a6bd1070d6eba645a8b6de8c (patch)
treec48e6f4cab3a5bc1f8909dee23354ebe437011a4 /action.c
parent618d3a6af7b2123b48488c2d9b6bd2719ce40f6d (diff)
downloaddzen-e356149db43d8e43a6bd1070d6eba645a8b6de8c.tar.gz
dzen-e356149db43d8e43a6bd1070d6eba645a8b6de8c.zip
a_scrollup, a_scrolldown take argument: number of lines to scroll
git-svn-id: http://dzen.googlecode.com/svn/trunk@53 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'action.c')
-rw-r--r--action.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/action.c b/action.c
index b2579f2..e1220f2 100644
--- a/action.c
+++ b/action.c
@@ -234,11 +234,22 @@ a_togglestick(char * opt[]) {
int
a_scrollup(char * opt[]) {
+ int n;
+ if(opt[0])
+ n = atoi(opt[0]);
+ if(!n)
+ n = 1;
+
if(dzen.slave_win.max_lines
&& dzen.slave_win.first_line_vis
&& dzen.slave_win.last_line_vis > dzen.slave_win.max_lines) {
- dzen.slave_win.first_line_vis--;
- dzen.slave_win.last_line_vis--;
+ if(dzen.slave_win.first_line_vis - n < 0) {
+ dzen.slave_win.first_line_vis = 0;
+ dzen.slave_win.last_line_vis = dzen.slave_win.max_lines;
+ } else {
+ dzen.slave_win.first_line_vis -= n;
+ dzen.slave_win.last_line_vis -=n;
+ }
x_draw_body();
}
return 0;
@@ -246,11 +257,22 @@ a_scrollup(char * opt[]) {
int
a_scrolldown(char * opt[]) {
+ int n;
+ if(opt[0])
+ n = atoi(opt[0]);
+ if(!n)
+ n = 1;
+
if(dzen.slave_win.max_lines
&& dzen.slave_win.last_line_vis >= dzen.slave_win.max_lines
&& dzen.slave_win.last_line_vis < dzen.slave_win.tcnt) {
- dzen.slave_win.first_line_vis++;
- dzen.slave_win.last_line_vis++;
+ if(dzen.slave_win.last_line_vis + n > dzen.slave_win.tcnt) {
+ dzen.slave_win.first_line_vis = dzen.slave_win.tcnt - dzen.slave_win.max_lines;
+ dzen.slave_win.last_line_vis = dzen.slave_win.tcnt;
+ } else {
+ dzen.slave_win.first_line_vis += n;
+ dzen.slave_win.last_line_vis +=n;
+ }
x_draw_body();
}
return 0;