commit a75a6aa6eea1a3c6e95bf6c69dcdaa46ef806fba
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Thu May 1 16:36:23 2025 +0200
Avoid code duplication related to PREEDIT (take 2)
This is a new variant of 2637d81f313d1c9, which had to be reverted
because row elements pos member was incorrect.
---
src/Row.cpp | 43 +++++++++++++++++--------------------------
1 file changed, 17 insertions(+), 26 deletions(-)
diff --git a/src/Row.cpp b/src/Row.cpp
index a6cc00b6ef..563868cf36 100644
--- a/src/Row.cpp
+++ b/src/Row.cpp
@@ -166,38 +166,29 @@ bool Row::Element::splitAt(int const width, int
next_width, SplitType split_type
// should next element eventually replace *this?
bool first = true;
docstring::size_type i = 0;
+ pos_type curpos = pos;
for (FontMetrics::Break const & brk : breaks) {
+ Element e(type, curpos, 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);
+ } else
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);
+
+ curpos = e.endpos;
i += brk.len;
}
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs