From ad566a86de2368aa4a42cd26dafecc066cff41eb Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Tue, 13 Oct 2009 15:38:37 +0000 Subject: Move lines into the history when scrolling even if the scroll region is not the entire screen. Allows ircII users to see history, prompted by naddy. --- grid-view.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'grid-view.c') diff --git a/grid-view.c b/grid-view.c index bf58c61f..f6bde853 100644 --- a/grid-view.c +++ b/grid-view.c @@ -92,15 +92,20 @@ grid_view_scroll_region_up(struct grid *gd, u_int rupper, u_int rlower) { GRID_DEBUG(gd, "rupper=%u, rlower=%u", rupper, rlower); - if (gd->flags & GRID_HISTORY && rupper == 0 && rlower == gd->sy - 1) { - grid_scroll_line(gd); - return; + if (gd->flags & GRID_HISTORY) { + grid_collect_history(gd); + if (rupper == 0 && rlower == gd->sy - 1) + grid_scroll_history(gd); + else { + rupper = grid_view_y(gd, rupper); + rlower = grid_view_y(gd, rlower); + grid_scroll_history_region(gd, rupper, rlower); + } + } else { + rupper = grid_view_y(gd, rupper); + rlower = grid_view_y(gd, rlower); + grid_move_lines(gd, rupper, rupper + 1, rlower - rupper); } - - rupper = grid_view_y(gd, rupper); - rlower = grid_view_y(gd, rlower); - - grid_move_lines(gd, rupper, rupper + 1, rlower - rupper); } /* Scroll region down. */ -- cgit