]> git.lyx.org Git - features.git/commitdiff
Fix insertion of text characters in math
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 28 Mar 2019 12:18:34 +0000 (13:18 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 28 Mar 2019 12:22:38 +0000 (13:22 +0100)
Characters that needed to be inserted in text mode in mathed were not
correctly inserted. Here we do two fixes:

1/ in niceInsert(), do not replace the contents of the active insets
first cell with selection, insert selection instead. This wa sthe
cause of the bug: an empty selection replaced the contents that was
already in the cell.

2/ do not use niceInsert() anyway, insert() is perfect for what we
want to do.

Fixes bug #11527.

src/Cursor.cpp
src/mathed/InsetMathNest.cpp

index a6d799ec9c81d5ba9efcf395b6f2e1dfe6e555ea..56a9dd872245c62f66f345c3679406f52f61f502 100644 (file)
@@ -1547,7 +1547,9 @@ void Cursor::niceInsert(MathAtom const & t)
        // If possible, enter the new inset and move the contents of the selection
        if (t->isActive()) {
                idx_type const idx = prevMath().asNestInset()->firstIdx();
-               asArray(safe, prevMath().cell(idx));
+               MathData ar(buffer());
+               asArray(safe, ar);
+               prevMath().cell(idx).insert(0, ar);
                editInsertedInset();
        } else if (t->asMacro() && !safe.empty()) {
                MathData ar(buffer());
index 8cd1254098d2c0f125a8de5f31a5f096a5498296..798ca8920b952ab656e01967817cafcc8b89069a 100644 (file)
@@ -1844,7 +1844,7 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
                if (currentMode() == InsetMath::MATH_MODE && Encodings::isUnicodeTextOnly(c)) {
                        MathAtom at = createInsetMath("text", buf);
                        at.nucleus()->cell(0).push_back(MathAtom(new InsetMathChar(c)));
-                       cur.niceInsert(at);
+                       cur.insert(at);
                        cur.posForward();
                        return true;
                }