[LyX/2.3.x] Do not try to put cursor after space if no space was kept

Jean-Marc Lasgouttes lasgouttes at lyx.org
Fri Apr 17 08:20:37 UTC 2020


commit cc5d3bd9f445e99018dc94e6dceb9c1140c09d09
Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
Date:   Mon Apr 13 12:58:43 2020 +0200

    Do not try to put cursor after space if no space was kept
    
    The logic was wrong and could cause crashes
    
    Fixes bug #11777.
---
 src/Text2.cpp |    3 ++-
 status.23x    |    2 ++
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/Text2.cpp b/src/Text2.cpp
index ce52598..71569db 100644
--- a/src/Text2.cpp
+++ b/src/Text2.cpp
@@ -797,8 +797,9 @@ void fixCursorAfterDelete(CursorSlice & cur, CursorSlice const & where,
 		return;
 
 	// If cursor position is after the deletion place update it
+	// but if we are not at start of line keep it after the space that was kept.
 	if (cur.pos() > from)
-		cur.pos() = max(from + 1, cur.pos() - num_chars);
+		cur.pos() = max(from + (from > 0), cur.pos() - num_chars);
 
 	// Check also if we don't want to set the cursor on a spot behind the
 	// pagragraph because we erased the last character.
diff --git a/status.23x b/status.23x
index acd7e12..d184ac5 100644
--- a/status.23x
+++ b/status.23x
@@ -105,6 +105,8 @@ What's new
 - Avoid crash in some cases where a dialog is shown during operation
   (bug 11763).
 
+- Fix crash with nested insets when spaces are removed automatically (bug 11777).
+
 * INTERNALS
 
 


More information about the lyx-cvs mailing list