[vte/wip/egmont/bidi: 70/83] fix block selection at cjks
- From: Egmont Koblinger <egmontkob src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte/wip/egmont/bidi: 70/83] fix block selection at cjks
- Date: Thu, 3 Jan 2019 12:59:17 +0000 (UTC)
commit f732bc921eb8ae55871d0a292fe53fd2065508eb
Author: Egmont Koblinger <egmont gmail com>
Date: Mon Sep 24 13:34:57 2018 +0200
fix block selection at cjks
src/vte.cc | 5 +++++
1 file changed, 5 insertions(+)
---
diff --git a/src/vte.cc b/src/vte.cc
index be035d8f..075fb9cc 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -5515,12 +5515,17 @@ Terminal::cell_is_selected_vis(vte::grid::column_t col,
{
if (m_selection_block_mode) {
/* In block mode, make sure CJKs and TABs aren't cut in half. */
+ /* BiDi: convert to logical column... */
+ vte::base::BidiRow const* bidirow = m_ringview.get_row_map(row);
+ col = bidirow->vis2log(col);
while (col > 0) {
VteCell const* cell = find_charcell(col, row);
if (!cell || !cell->attr.fragment())
break;
col--;
}
+ /* ... and back to visual. */
+ col = bidirow->log2vis(col);
return m_selection_resolved.box_contains ({ row, col });
} else {
/* BiDi: convert to logical column. */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]