]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathNest.cpp
Use master buffer's setting for math output type.
[lyx.git] / src / mathed / InsetMathNest.cpp
index affe7918c69b749479e38cf7e3af9b1a3862a974..829bbc0a52188b8f4c4bf5caae43bc917eef725f 100644 (file)
@@ -706,6 +706,10 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                        act == LFUN_UP_SELECT;
                cur.selHandle(select);
 
+               // handle autocorrect:
+               cur.autocorrect() = false;
+               cur.message(_("Autocorrect Off ('!' to enter)"));
+
                // go up/down
                bool up = act == LFUN_UP || act == LFUN_UP_SELECT;
                bool successful = cur.upDownInMath(up);
@@ -725,6 +729,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_MOUSE_DOUBLE:
        case LFUN_MOUSE_TRIPLE:
        case LFUN_WORD_SELECT:
+       case LFUN_INSET_SELECT_ALL:
                cur.pos() = 0;
                cur.idx() = 0;
                cur.resetAnchor();
@@ -806,7 +811,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                if (cur.pos() == 0)
                        // May affect external cell:
                        cur.recordUndoInset();
-               else
+               else if (!cur.inMacroMode())
                        cur.recordUndoSelection();
                // if the inset can not be removed from within, delete it
                if (!cur.backspace()) {
@@ -872,7 +877,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                // if relevant. Think typing "\frac<space>".
                if (cmd.argument()[0] == ' '
                    && cur.inMacroMode() && cur.macroName() != "\\"
-                   && cur.macroModeClose()) {
+                   && cur.macroModeClose() && cur.pos() > 0) {
                        MathAtom const atom = cur.prevAtom();
                        if (atom->asNestInset() && atom->isActive()) {
                                cur.posBackward();
@@ -1368,7 +1373,6 @@ bool InsetMathNest::getStatus(Cursor & cur, FuncRequest const & cmd,
        // we just need to be in math mode to enable that
        case LFUN_MATH_SIZE:
        case LFUN_MATH_SPACE:
-       case LFUN_MATH_LIMITS:
        case LFUN_MATH_EXTERN:
                flag.setEnabled(true);
                break;
@@ -1442,6 +1446,10 @@ bool InsetMathNest::getStatus(Cursor & cur, FuncRequest const & cmd,
                flag.setEnabled(false);
                break;
 
+       case LFUN_CAPTION_INSERT:
+               flag.setEnabled(false);
+               break;
+       
        case LFUN_SPACE_INSERT: {
                docstring const & name = cmd.argument();
                if (name == "visible")
@@ -1706,6 +1714,7 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
                //lyxerr << "starting with macro" << endl;
                bool reduced = cap::reduceSelectionToOneCell(cur);
                if (reduced || !cur.selection()) {
+                       cur.recordUndoInset();
                        docstring const safe = cap::grabAndEraseSelection(cur);
                        if (!cur.inRegexped())
                                cur.insert(MathAtom(new InsetMathUnknown(from_ascii("\\"), safe, false)));
@@ -2064,7 +2073,7 @@ MathCompletionList::MathCompletionList(Cursor const & cur)
        }
        sort(locals.begin(), locals.end());
 
-       if (globals.size() > 0)
+       if (!globals.empty())
                return;
 
        // fill in global macros
@@ -2099,6 +2108,7 @@ MathCompletionList::MathCompletionList(Cursor const & cur)
        globals.push_back(from_ascii("\\root"));
        globals.push_back(from_ascii("\\tabular"));
        globals.push_back(from_ascii("\\stackrel"));
+       globals.push_back(from_ascii("\\stackrelthree"));
        globals.push_back(from_ascii("\\binom"));
        globals.push_back(from_ascii("\\choose"));
        globals.push_back(from_ascii("\\brace"));