[LyX/master] Consider change tracking in setBeginOfBody()

Juergen Spitzmueller spitz at lyx.org
Fri Mar 6 10:31:03 UTC 2020


commit e6105275af57a12a337a70bf5d0b2f72ff568707
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Fri Mar 6 11:49:32 2020 +0100

    Consider change tracking in setBeginOfBody()
    
    Fixes #11749
---
 src/Paragraph.cpp |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index afa53f6..ae24342 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -2122,15 +2122,17 @@ void Paragraph::setBeginOfBody()
 	// remove unnecessary getChar() calls
 	pos_type i = 0;
 	pos_type end = size();
-	if (i < end && !(isNewline(i) || isEnvSeparator(i))) {
+	bool prev_char_deleted = false;
+	if (i < end && (!(isNewline(i) || isEnvSeparator(i)) || isDeleted(i))) {
 		++i;
 		if (i < end) {
 			char_type previous_char = d->text_[i];
 			if (!(isNewline(i) || isEnvSeparator(i))) {
 				++i;
-				while (i < end && previous_char != ' ') {
+				while (i < end && (previous_char != ' ' || prev_char_deleted)) {
 					char_type temp = d->text_[i];
-					if (isNewline(i) || isEnvSeparator(i))
+					prev_char_deleted = isDeleted(i);
+					if (!isDeleted(i) && (isNewline(i) || isEnvSeparator(i)))
 						break;
 					++i;
 					previous_char = temp;


More information about the lyx-cvs mailing list