]> git.lyx.org Git - features.git/blobdiff - src/mathed/InsetMathNest.cpp
Fix bug 11667
[features.git] / src / mathed / InsetMathNest.cpp
index 798ca8920b952ab656e01967817cafcc8b89069a..66e900ad52441be1be5c857890172c72268d4cbe 100644 (file)
@@ -373,9 +373,10 @@ void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const
        Changer dummy = wi.changeRowEntry(TexRow::textEntry(runparams.lastid,
                                                            runparams.lastpos));
        write(wi);
-       // Reset parbreak status after a math inset.
+       // Reset parbreak and command termination status after a math inset.
        os.lastChar(0);
        os.canBreakLine(wi.canBreakLine());
+       os.terminateCommand(false);
 }
 
 
@@ -706,12 +707,6 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                        || act == LFUN_PARAGRAPH_UP_SELECT;
                cur.selHandle(select);
 
-               // handle autocorrect:
-               if (lyxrc.autocorrection_math && cur.autocorrect()) {
-                       cur.autocorrect() = false;
-                       cur.message(_("Autocorrect Off ('!' to enter)"));
-               }
-
                // go up/down
                bool up = act == LFUN_UP || act == LFUN_UP_SELECT
                        || act == LFUN_PARAGRAPH_UP || act == LFUN_PARAGRAPH_UP_SELECT;
@@ -1097,7 +1092,8 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                // check if we have a valid decoration
                if (name != "pmatrix" && name != "bmatrix"
                        && name != "Bmatrix" && name != "vmatrix"
-                       && name != "Vmatrix" && name != "matrix")
+                       && name != "Vmatrix" && name != "matrix"
+                       && name != "smallmatrix")
                        name = from_ascii("matrix");
 
                cur.niceInsert(
@@ -1613,6 +1609,11 @@ void InsetMathNest::lfunMouseRelease(Cursor & cur, FuncRequest & cmd)
 
 bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
 {
+        // try auto-correction
+        if (lyxrc.autocorrection_math && cur.pos() != 0
+                  && math_autocorrect(cur, c))
+                return true;
+
        //lyxerr << "interpret 2: '" << c << "'" << endl;
        docstring save_selection;
        if (c == '^' || c == '_')
@@ -1729,18 +1730,6 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
        }
 
 
-       // leave autocorrect mode if necessary
-       if (lyxrc.autocorrection_math && c == ' ' && cur.autocorrect()) {
-               cur.autocorrect() = false;
-               cur.message(_("Autocorrect Off ('!' to enter)"));
-               return true;
-       }
-       if (lyxrc.autocorrection_math && c == '!' && !cur.autocorrect()) {
-               cur.autocorrect() = true;
-               cur.message(_("Autocorrect On (<space> to exit)"));
-               return true;
-       }
-
        // just clear selection on pressing the space bar
        if (cur.selection() && c == ' ') {
                cur.selection(false);
@@ -1865,20 +1854,8 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
                return true;
        }
 
-
-       // try auto-correction
-       if (lyxrc.autocorrection_math && cur.autocorrect() && cur.pos() != 0
-                 && math_autocorrect(cur.prevAtom(), c))
-               return true;
-
        // no special circumstances, so insert the character without any fuss
        cur.insert(c);
-       if (lyxrc.autocorrection_math) {
-               if (!cur.autocorrect())
-                       cur.message(_("Autocorrect Off ('!' to enter)"));
-               else
-                       cur.message(_("Autocorrect On (<space> to exit)"));
-       }
        return true;
 }