[vte/wip/egmont/bidi: 78/84] hack around some crashes



commit b2de7dfadd0994516ad22d7221e6f88e1c3190ab
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 ad805c0d..619c1fbe 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -5829,6 +5829,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");
 
@@ -5938,6 +5946,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);
@@ -9556,7 +9572,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);
 
@@ -9591,6 +9606,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]