1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 20:37:34 +00:00

Terminal: Fix lagged full flush after scrolling the whole buffer.

Now that we're using the lazy rendering model of LibGUI, we can't wait until
paint_event() to decide how much we want to update. :^)
This commit is contained in:
Andreas Kling 2019-02-10 14:47:09 +01:00
parent 08322ab8e1
commit 052a101cc5

View file

@ -400,6 +400,7 @@ void Terminal::scroll_up()
m_lines[row - 1] = m_lines[row]; m_lines[row - 1] = m_lines[row];
m_lines[m_rows - 1] = new Line(m_columns); m_lines[m_rows - 1] = new Line(m_columns);
++m_rows_to_scroll_backing_store; ++m_rows_to_scroll_backing_store;
m_need_full_flush = true;
} }
void Terminal::set_cursor(unsigned a_row, unsigned a_column) void Terminal::set_cursor(unsigned a_row, unsigned a_column)
@ -659,7 +660,6 @@ void Terminal::paint_event(GPaintEvent&)
painter.target()->scanline(second_scanline), painter.target()->scanline(second_scanline),
scanlines_to_copy * m_pixel_width scanlines_to_copy * m_pixel_width
); );
m_need_full_flush = true;
line(max(0, m_cursor_row - m_rows_to_scroll_backing_store)).dirty = true; line(max(0, m_cursor_row - m_rows_to_scroll_backing_store)).dirty = true;
} }
m_rows_to_scroll_backing_store = 0; m_rows_to_scroll_backing_store = 0;