[vte/wip/egmont/bidi: 30/79] fix crash when scrolling back



commit 5ccf2bbd93891328ea0f4022b0ab28f6ad1b721f
Author: Egmont Koblinger <egmont gmail com>
Date:   Thu Aug 23 00:53:53 2018 +0200

    fix crash when scrolling back

 src/vte.cc | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index fffa54e2..164c47eb 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -8825,7 +8825,7 @@ Terminal::draw_rows(VteScreen *screen_,
 
         // FIXME find a nicer place for these
         m_ringview.set_ring (m_screen->row_data);
-        m_ringview.set_rows ((long) m_screen->scroll_delta, m_row_count + 2);
+        m_ringview.set_rows ((long) m_screen->scroll_delta, m_row_count + 3);
         m_ringview.set_width (m_column_count);
         m_ringview.update ();
 
@@ -9065,7 +9065,9 @@ Terminal::paint_cursor()
        width = m_cell_width;
        height = m_cell_height;
 
-        /* TODOegmont: clamp on rows? tricky... */
+        /* An outer rectangle might even peek in from a line that's completely scrolled out at the bottom. */
+        if (drow > last_displayed_row() + 1)
+                return;
        if (CLAMP(col, 0, m_column_count - 1) != col)
                return;
 
@@ -9074,7 +9076,7 @@ Terminal::paint_cursor()
 
         // FIXME find a nicer place for these
         m_ringview.set_ring (m_screen->row_data);
-        m_ringview.set_rows ((long) m_screen->scroll_delta, m_row_count + 2);
+        m_ringview.set_rows ((long) m_screen->scroll_delta, m_row_count + 3);
         m_ringview.set_width (m_column_count);
         m_ringview.update ();
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]