From 9633920fdb5b399196a51e659378c1bf70cec2c3 Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Tue, 1 Feb 2011 00:48:18 -0500 Subject: [PATCH] Simplify scrolling --- terminalframebuffer.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/terminalframebuffer.cpp b/terminalframebuffer.cpp index 8bcf954..b0c5212 100644 --- a/terminalframebuffer.cpp +++ b/terminalframebuffer.cpp @@ -79,8 +79,7 @@ void Framebuffer::scroll( int N ) { if ( N >= 0 ) { for ( int i = 0; i < N; i++ ) { - rows.erase( rows.begin() + ds.get_scrolling_region_top_row() ); - rows.insert( rows.begin() + ds.get_scrolling_region_bottom_row(), Row( ds.get_width() ) ); + delete_line( ds.get_scrolling_region_top_row() ); ds.move_row( -1, true ); } } else { @@ -306,14 +305,14 @@ void Framebuffer::insert_line( int before_row ) return; } - rows.erase( rows.begin() + ds.get_scrolling_region_bottom_row() ); rows.insert( rows.begin() + before_row, Row( ds.get_width() ) ); + rows.erase( rows.begin() + ds.get_scrolling_region_bottom_row() + 1 ); } void Framebuffer::delete_line( int row ) { if ( (row < ds.get_scrolling_region_top_row()) - || (row > ds.get_scrolling_region_bottom_row() + 1) ) { + || (row > ds.get_scrolling_region_bottom_row()) ) { return; }