]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathNest.cpp
Another assertion that got transformed in 1b1f8dd2
[lyx.git] / src / mathed / InsetMathNest.cpp
index c2f4fc16ba5deabdc0e1a9ae2d4e610c038e0927..5f8f8f5befd9d42f33831f63dfd1ea0ea2c9779e 100644 (file)
@@ -139,7 +139,7 @@ void InsetMathNest::cursorPos(BufferView const & bv,
 // to touch all (math)inset's draw() methods. Right now, we'll store
 // absolute value, and make them here relative, only to make them
 // absolute again when actually drawing the cursor. What a mess.
-       LASSERT(&sl.inset() == this, /**/);
+       LASSERT(&sl.inset() == this, return);
        MathData const & ar = sl.cell();
        CoordCache const & coord_cache = bv.coordCache();
        if (!coord_cache.getArrays().has(&ar)) {
@@ -192,7 +192,7 @@ void InsetMathNest::updateBuffer(ParIterator const & it, UpdateType utype)
 
 bool InsetMathNest::idxNext(Cursor & cur) const
 {
-       LASSERT(&cur.inset() == this, /**/);
+       LASSERT(&cur.inset() == this, return false);
        if (cur.idx() == cur.lastidx())
                return false;
        ++cur.idx();
@@ -209,7 +209,7 @@ bool InsetMathNest::idxForward(Cursor & cur) const
 
 bool InsetMathNest::idxPrev(Cursor & cur) const
 {
-       LASSERT(&cur.inset() == this, /**/);
+       LASSERT(&cur.inset() == this, return false);
        if (cur.idx() == 0)
                return false;
        --cur.idx();
@@ -226,7 +226,7 @@ bool InsetMathNest::idxBackward(Cursor & cur) const
 
 bool InsetMathNest::idxFirst(Cursor & cur) const
 {
-       LASSERT(&cur.inset() == this, /**/);
+       LASSERT(&cur.inset() == this, return false);
        if (nargs() == 0)
                return false;
        cur.idx() = 0;
@@ -237,7 +237,7 @@ bool InsetMathNest::idxFirst(Cursor & cur) const
 
 bool InsetMathNest::idxLast(Cursor & cur) const
 {
-       LASSERT(&cur.inset() == this, /**/);
+       LASSERT(&cur.inset() == this, return false);
        if (nargs() == 0)
                return false;
        cur.idx() = cur.lastidx();
@@ -576,7 +576,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                replaceSelection(cur);
                docstring topaste;
                if (cmd.argument().empty() && !theClipboard().isInternal())
-                       topaste = theClipboard().getAsText();
+                       topaste = theClipboard().getAsText(Clipboard::PlainTextType);
                else {
                        size_t n = 0;
                        idocstringstream is(cmd.argument());
@@ -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()) {
@@ -1441,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")
@@ -1452,6 +1461,13 @@ bool InsetMathNest::getStatus(Cursor & cur, FuncRequest const & cmd,
                flag.setEnabled(!asHullInset());
                break;
 
+       case LFUN_PASTE: {
+               docstring const & name = cmd.argument();
+               if (name == "html" || name == "latex")
+                       flag.setEnabled(false);
+               break;
+       }
+
        default:
                ret = false;
                break;
@@ -1628,7 +1644,7 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
                                cur.backspace();
                                cur.niceInsert(MathAtom(new InsetMathComment(buf)));
                        } else if (c == '#') {
-                               LASSERT(cur.activeMacro(), /**/);
+                               LASSERT(cur.activeMacro(), return false);
                                cur.activeMacro()->setName(name + docstring(1, c));
                        } else {
                                cur.backspace();
@@ -1705,6 +1721,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)));
@@ -2063,7 +2080,7 @@ MathCompletionList::MathCompletionList(Cursor const & cur)
        }
        sort(locals.begin(), locals.end());
 
-       if (globals.size() > 0)
+       if (!globals.empty())
                return;
 
        // fill in global macros
@@ -2098,6 +2115,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"));