From e356149db43d8e43a6bd1070d6eba645a8b6de8c Mon Sep 17 00:00:00 2001 From: gotmor Date: Sun, 3 Jun 2007 13:29:29 +0000 Subject: 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 --- action.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'action.c') 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; -- cgit v1.2.3-54-g00ecf