Le 30 avril 2025 13:43:09 GMT+02:00, Stephan Witt <[email protected]> a écrit :
>Hi JMarc,
>
>this change breaks the cursor movement (at least on Mac). Do have no problems 
>on your side?
>
>The cursor cannot positioned inside a paragraph with multiple lines. It hangs 
>at the top in the first line…
>
>BR Stephan
>
>> Am 29.04.2025 um 13:33 schrieb Jean-Marc Lasgouttes <[email protected]>:
>> 
>> commit 2637d81f313d1c94aafdbd8c687d3034e89f70df
>> Author: Jean-Marc Lasgouttes <[email protected]>
>> Date:   Tue Apr 29 13:29:54 2025 +0200
>> 
>>    Avoid code duplication related to PREEDIT
>> ---
>> src/Row.cpp | 36 ++++++++++++------------------------
>> 1 file changed, 12 insertions(+), 24 deletions(-)
>> 
>> diff --git a/src/Row.cpp b/src/Row.cpp
>> index a6cc00b6ef..1dcccf7f33 100644
>> --- a/src/Row.cpp
>> +++ b/src/Row.cpp
>> @@ -167,37 +167,25 @@ 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
>

Oh :( It is probably obvious but I do not have time right now. Please revert 
the commit.

JMarc 
-- 
lyx-devel mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to