diff options
author | gotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2007-06-03 13:29:29 +0000 |
---|---|---|
committer | gotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2007-06-03 13:29:29 +0000 |
commit | e356149db43d8e43a6bd1070d6eba645a8b6de8c (patch) | |
tree | c48e6f4cab3a5bc1f8909dee23354ebe437011a4 /action.c | |
parent | 618d3a6af7b2123b48488c2d9b6bd2719ce40f6d (diff) | |
download | dzen-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.c | 30 |
1 files changed, 26 insertions, 4 deletions
@@ -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; |