summaryrefslogtreecommitdiffstats
path: root/grid-view.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-10-13 15:38:37 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-10-13 15:38:37 +0000
commitad566a86de2368aa4a42cd26dafecc066cff41eb (patch)
tree98677a9cfc95b49a61cfee0d1da88ecd22cc00a0 /grid-view.c
parent71dc6e04e8ca9ab85acbef90bbfd57463be0dc07 (diff)
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.
Diffstat (limited to 'grid-view.c')
-rw-r--r--grid-view.c21
1 files changed, 13 insertions, 8 deletions
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. */