[vte/wip/egmont/bidi: 79/79] fix block selection at cjks
- From: Egmont Koblinger <egmontkob src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte/wip/egmont/bidi: 79/79] fix block selection at cjks
- Date: Fri, 28 Sep 2018 08:18:41 +0000 (UTC)
commit f7c060c5c48b8cef9878439fa9d5197417d9aafa
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 42a92807..08a32e71 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -5486,12 +5486,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 (vte::grid::coords (row, col));
} else {
/* BiDi: convert to logical column. */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]