aboutsummaryrefslogtreecommitdiff
path: root/grid-view.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2009-10-15 01:55:12 +0000
committerTiago Cunha <tcunha@gmx.com>2009-10-15 01:55:12 +0000
commit3d88da7b2afbd24bf62259bb7f2f53ccf29f8379 (patch)
tree05fca8eb06bba764879ea1cac6fec352066ab538 /grid-view.c
parentee46dba585cbd38ff90344b311a71ca6cf8cadc5 (diff)
downloadrtmux-3d88da7b2afbd24bf62259bb7f2f53ccf29f8379.tar.gz
rtmux-3d88da7b2afbd24bf62259bb7f2f53ccf29f8379.tar.bz2
rtmux-3d88da7b2afbd24bf62259bb7f2f53ccf29f8379.zip
Sync OpenBSD patchset 409:
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.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/grid-view.c b/grid-view.c
index ece26d6f..1a04f157 100644
--- a/grid-view.c
+++ b/grid-view.c
@@ -1,4 +1,4 @@
-/* $Id: grid-view.c,v 1.18 2009-07-14 06:40:33 nicm Exp $ */
+/* $Id: grid-view.c,v 1.19 2009-10-15 01:55:12 tcunha Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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. */