From 5653cf7cb167eca68935d65e7693608c32e4000c Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 21 Apr 2014 21:33:56 -0400 Subject: fix scrolling the documentation is unclear here - it says that scroll regions define the bounds of all scroll and cursor motion operations, but apparently absolute cursor positioning is not considered a "cursor motion operation". --- src/display.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/display.c b/src/display.c index 40a87db..fa3ff17 100644 --- a/src/display.c +++ b/src/display.c @@ -104,17 +104,15 @@ void runes_display_focus_out(RunesTerm *t) void runes_display_move_to(RunesTerm *t, int row, int col) { - int height = t->scroll_bottom - t->scroll_top; - - t->row = row + t->scroll_top; + t->row = row; t->col = col; - if (row > height) { - runes_display_scroll_down(t, row - height); + if (row > t->scroll_bottom) { + runes_display_scroll_down(t, row - t->scroll_bottom); t->row = t->scroll_bottom; } - else if (row < 0) { - runes_display_scroll_up(t, -row); + else if (row < t->scroll_top) { + runes_display_scroll_up(t, t->scroll_top - row); t->row = t->scroll_top; } @@ -442,7 +440,7 @@ void runes_display_set_scroll_region( t->scroll_top = top; t->scroll_bottom = bottom; - runes_display_move_to(t, 0, 0); + runes_display_move_to(t, t->scroll_top, 0); } void runes_display_scroll_up(RunesTerm *t, int rows) -- cgit v1.2.3-54-g00ecf