]> git.lyx.org Git - lyx.git/commitdiff
Consider CT in dash mechanism (#13062)
authorJuergen Spitzmueller <spitz@lyx.org>
Sat, 11 May 2024 11:07:32 +0000 (13:07 +0200)
committerRichard Kimberly Heck <rikiheck@lyx.org>
Sat, 11 May 2024 17:02:39 +0000 (13:02 -0400)
(cherry picked from commit fe4f0dbf0b37c413994bbfa780a833b1c041a433)

src/Text.cpp

index d5a1069fa1f4afcae0f155c9f071958bc4009fc6..0adc763c2f662c2fa5cf0b15413348ca49d3af82 100644 (file)
@@ -1127,12 +1127,15 @@ void Text::insertChar(Cursor & cur, char_type c)
        if (!cur.paragraph().isPassThru() && owner_->lyxCode() != IPA_CODE &&
            cur.real_current_font.fontInfo().family() != TYPEWRITER_FAMILY &&
            c == '-' && pos > 0) {
-               if (par.getChar(pos - 1) == '-') {
+               pos_type prev_pos = pos - 1;
+               while (prev_pos > 0 && par.isDeleted(prev_pos))
+                       --prev_pos;
+               if (!par.isDeleted(prev_pos) && par.getChar(prev_pos) == '-') {
                        // convert "--" to endash
-                       par.eraseChar(pos - 1, cur.buffer()->params().track_changes);
+                       par.eraseChar(prev_pos, cur.buffer()->params().track_changes);
                        c = 0x2013;
                        pos--;
-               } else if (par.getChar(pos - 1) == 0x2013) {
+               } else if (!par.isDeleted(prev_pos) && par.getChar(prev_pos) == 0x2013) {
                        // convert "---" to emdash
                        par.eraseChar(pos - 1, cur.buffer()->params().track_changes);
                        c = 0x2014;