[LyX/2.3.x] Fix backspace deletion of selected items with change tracking

Juergen Spitzmueller spitz at lyx.org
Mon Jan 27 07:24:30 UTC 2020


commit 81af6062cb41d2cb703e70d7dd3902e292fa28eb
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Mon Jan 13 09:48:56 2020 +0100

    Fix backspace deletion of selected items with change tracking
    
    Move cursor at beginning of selection after deletion. Else backspace
    operation gets stuck in a loop (tries to remove the selection again
    and again).
    
    This also fixes backspace deletion of insets with confirmDeletion() == true.
    
    Fixes #11630
    
    (cherry picked from commit adfd38e4efd1180df164fa2c75cf15210f366e94)
---
 src/Text3.cpp |    6 ++++++
 status.23x    |    2 ++
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/Text3.cpp b/src/Text3.cpp
index 393b556..7064603 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -1193,7 +1193,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
 				}
 			}
 		} else {
+			DocIterator const dit = cur.selectionBegin();
 			cutSelection(cur, false);
+			if (cur.buffer()->params().track_changes)
+				// since we're doing backwards deletion,
+				// and the selection is not really cut,
+				// move cursor before selection (#11630)
+				cur.setCursor(dit);
 			singleParUpdate = false;
 		}
 		break;
diff --git a/status.23x b/status.23x
index 7b2e2a9..63ad41d 100644
--- a/status.23x
+++ b/status.23x
@@ -52,6 +52,8 @@ What's new
 
 * USER INTERFACE
 
+- Fix backspace deletion of selected items with change tracking (bug 11630).
+
 - Fix display glith where the change tracking cue blinks with the cursor
   (bug 11684).
 


More information about the lyx-cvs mailing list