[vte/wip/egmont/bidi: 75/79] hack around some crashes
- From: Egmont Koblinger <egmontkob src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte/wip/egmont/bidi: 75/79] hack around some crashes
- Date: Fri, 28 Sep 2018 08:18:21 +0000 (UTC)
commit 31705929603e834933dca2cea4bbc73c9ef33aa8
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 3e7d7d3d..9aaa5e2f 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -5846,6 +5846,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");
@@ -5955,6 +5963,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);
@@ -9566,7 +9582,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);
@@ -9601,6 +9616,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]