[vte/wip/egmont/bidi: 25/76] fix crash when scrolling back



commit 6a989e34363aadc6270093de38ea53d8bb05ee96
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 5e123939..3507ab51 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -8809,7 +8809,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 ();
 
@@ -9055,7 +9055,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;
 
@@ -9064,7 +9066,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]