commit 6ab4b086ece45ce9f5de58366820503d2ccd2be1
Author: Koji Yokota <[email protected]>
Date:   Thu Jun 26 12:25:56 2025 +0900

    Debug a possible non-positive pos error
---
 src/frontends/qt/GuiInputMethod.cpp | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/frontends/qt/GuiInputMethod.cpp 
b/src/frontends/qt/GuiInputMethod.cpp
index b18c97b1c6..1e305b0b26 100644
--- a/src/frontends/qt/GuiInputMethod.cpp
+++ b/src/frontends/qt/GuiInputMethod.cpp
@@ -1103,12 +1103,18 @@ void GuiInputMethod::setSurroundingText(const Cursor & 
cur) {
                        ++insets_before_cur;
        }
 
-       d->im_state_.text_before_ =
-               partext.substr(0, *d->cur_pos_ptr_ - insets_before_cur);
-       d->im_state_.text_after_  =
-               partext.substr(*d->cur_pos_ptr_ - insets_before_cur);
-       d->im_state_.surrounding_text_ =
-               d->im_state_.text_before_ + d->im_state_.text_after_;
+       if (*d->cur_pos_ptr_ >= insets_before_cur) {
+               d->im_state_.text_before_ =
+                               partext.substr(0, *d->cur_pos_ptr_ - 
insets_before_cur);
+               d->im_state_.text_after_  =
+                               partext.substr(*d->cur_pos_ptr_ - 
insets_before_cur);
+               d->im_state_.surrounding_text_ =
+                       d->im_state_.text_before_ + d->im_state_.text_after_;
+       } else {
+               d->im_state_.text_before_.clear();
+               d->im_state_.text_after_  = partext;
+               d->im_state_.surrounding_text_ = partext;
+       }
 
        LYXERR(Debug::DEBUG, "surrounding text before cursor = " <<
               d->im_state_.text_before_);
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to