[vte/wip/egmont/bidi: 66/107] hack around some crashes



commit e845ff7cd2e29b6df261bc8c3c4f8faf02c17931
Author: Egmont Koblinger <egmont gmail com>
Date:   Wed Sep 19 13:55:45 2018 +0200

    hack around some crashes

 BIDI-STATUS |  1 -
 src/vte.cc  | 25 ++++++++++++++++++++++++-
 2 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/BIDI-STATUS b/BIDI-STATUS
index b8657f00..4d0f734d 100644
--- a/BIDI-STATUS
+++ b/BIDI-STATUS
@@ -20,7 +20,6 @@ Bugs:
   reviewed, adjusted, fixed properly.
 - Copying text in rectangle mode.
 - Crashes when mouse selection initiates scrolling.
-- Crashes with quitting mc using mouse.
 
 Missing from first release:
 - Adjust mouse reporting.
diff --git a/src/vte.cc b/src/vte.cc
index 6e955cc8..6516f72f 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -5893,6 +5893,14 @@ Terminal::hyperlink_hilite_update()
         if (!m_allow_hyperlink)
                 return;
 
+
+        // 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 + 3);
+        m_ringview.set_width (m_column_count);
+        m_ringview.update ();
+
+
         _vte_debug_print (VTE_DEBUG_HYPERLINK,
                          "hyperlink_hilite_update\n");
 
@@ -6002,6 +6010,14 @@ Terminal::match_hilite_update()
         glong col = pos.x / m_cell_width;
         glong row = pixel_to_row(pos.y);
 
+
+        // 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 + 3);
+        m_ringview.set_width (m_column_count);
+        m_ringview.update ();
+
+
         /* BiDi: convert to logical column. */
         vte::base::BidiRow const* bidirow = m_ringview.get_row_map(confine_grid_row(row));
         col = bidirow->vis2log(col);
@@ -9628,7 +9644,6 @@ Terminal::widget_scroll(GdkEventScroll *event)
        int button;
 
         GdkEvent *base_event = reinterpret_cast<GdkEvent*>(event);
-        auto rowcol = confined_grid_coords_from_event(base_event);
 
        read_modifiers(base_event);
 
@@ -9663,6 +9678,14 @@ Terminal::widget_scroll(GdkEventScroll *event)
                                "Scroll application by %d lines, smooth scroll delta set back to %f\n",
                                cnt, m_mouse_smooth_scroll_delta);
 
+                // FIXME find a nicer place for these – rowcol below needs an updated ringview to do BiDi
+                m_ringview.set_ring (m_screen->row_data);
+                m_ringview.set_rows ((long) m_screen->scroll_delta, m_row_count + 3);
+                m_ringview.set_width (m_column_count);
+                m_ringview.update ();
+
+                auto rowcol = confined_grid_coords_from_event(base_event);
+
                button = cnt > 0 ? 5 : 4;
                if (cnt < 0)
                        cnt = -cnt;


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