commit 725a8a08d3e51c554d7122040f18f83c1ff02174
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Wed Apr 30 20:05:21 2025 +0200

    Revert "Avoid code duplication related to PREEDIT"
    
    This creates cursor isses that I do not have time to solve right now.
    
    This reverts commit 2637d81f313d1c94aafdbd8c687d3034e89f70df.
---
 src/Row.cpp | 36 ++++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

diff --git a/src/Row.cpp b/src/Row.cpp
index 1dcccf7f33..a6cc00b6ef 100644
--- a/src/Row.cpp
+++ b/src/Row.cpp
@@ -167,25 +167,37 @@ bool Row::Element::splitAt(int const width, int 
next_width, SplitType split_type
        bool first = true;
        docstring::size_type i = 0;
        for (FontMetrics::Break const & brk : breaks) {
-               Element e(type, pos, font, change);
-               e.str = str.substr(i, brk.len);
-               e.dim.wid = brk.wid;
-               e.nspc_wid = brk.nspc_wid;
-               e.row_flags = CanBreakInside | BreakAfter;
                if (type == PREEDIT) {
+                       Element e(type, pos, font, change);
+                       e.str = str.substr(i, brk.len);
                        e.endpos = e.pos;
+                       e.dim.wid = brk.wid;
+                       e.nspc_wid = brk.nspc_wid;
+                       e.row_flags = CanBreakInside | BreakAfter;
                        e.im = im;
                        e.char_format_index = char_format_index;
+                       if (first) {
+                               // this element eventually goes to *this
+                               e.row_flags |= row_flags & ~AfterFlags;
+                               first_e = e;
+                               first = false;
+                       } else
+                               tail.push_back(e);
                } else {
+                       Element e(type, pos + i, font, change);
+                       e.str = str.substr(i, brk.len);
                        e.endpos = e.pos + brk.len;
+                       e.dim.wid = brk.wid;
+                       e.nspc_wid = brk.nspc_wid;
+                       e.row_flags = CanBreakInside | BreakAfter;
+                       if (first) {
+                               // this element eventually goes to *this
+                               e.row_flags |= row_flags & ~AfterFlags;
+                               first_e = e;
+                               first = false;
+                       } else
+                               tail.push_back(e);
                }
-               if (first) {
-                       // this element eventually goes to *this
-                       e.row_flags |= row_flags & ~AfterFlags;
-                       first_e = e;
-                       first = false;
-               } else
-                       tail.push_back(e);
                i += brk.len;
        }
 
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to