From c9e747c04ac0adebabfc06e0aaafd3eac70a46b7 Mon Sep 17 00:00:00 2001 From: gotmor Date: Sun, 3 Jun 2007 17:44:43 +0000 Subject: simplified scrolling git-svn-id: http://dzen.googlecode.com/svn/trunk@55 f2baff5b-bf2c-0410-a398-912abdc3d8b2 --- action.c | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) (limited to 'action.c') diff --git a/action.c b/action.c index 27ed3cd..e571285 100644 --- a/action.c +++ b/action.c @@ -231,25 +231,32 @@ a_togglestick(char * opt[]) { return 0; } +void +scroll(int n) { + 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 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(); +} + int a_scrollup(char * opt[]) { int n=1; if(opt[0]) n = atoi(opt[0]); + if(dzen.slave_win.max_lines) + scroll(-1*n); - if(dzen.slave_win.max_lines - && dzen.slave_win.first_line_vis - && dzen.slave_win.last_line_vis > dzen.slave_win.max_lines) { - 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; } @@ -259,19 +266,9 @@ a_scrolldown(char * opt[]) { if(opt[0]) n = atoi(opt[0]); + if(dzen.slave_win.max_lines) + scroll(n); - 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) { - 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