[vte/wip/egmont/bidi: 41/75] prepare draw_cells for a likely forthcoming change



commit ed4b31a58cf601080a5096ffa272a4170bb913ac
Author: Egmont Koblinger <egmont gmail com>
Date:   Fri Aug 24 12:27:18 2018 +0200

    prepare draw_cells for a likely forthcoming change

 src/vte.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index 7d33fab5..a271055c 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -8588,7 +8588,8 @@ Terminal::draw_cells(struct _vte_draw_text_request *items,
                columns = 0;
                x = items[i].x;
                y = items[i].y;
-               for (; i < n && items[i].y == y; i++) {
+               /* Items are not necessarily in LTR order. Combine the ones that form an LTR run. */
+               for (; i < n && items[i].x == x + columns * column_width && items[i].y == y; i++) {
                        columns += items[i].columns;
                }
                if (clear && (draw_default_bg || back != VTE_DEFAULT_BG)) {
@@ -8628,7 +8629,8 @@ Terminal::draw_cells(struct _vte_draw_text_request *items,
                do {
                        x = items[i].x;
                        y = items[i].y;
-                       for (columns = 0; i < n && items[i].y == y; i++) {
+                       /* Items are not necessarily in LTR order. Combine the ones that form an LTR run. */
+                       for (columns = 0; i < n && items[i].x == x + columns * column_width && items[i].y == 
y; i++) {
                                columns += items[i].columns;
                        }
                         switch (vte_attr_get_value(attr, VTE_ATTR_UNDERLINE_VALUE_MASK, 
VTE_ATTR_UNDERLINE_SHIFT)) {


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