]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/MathMacroTemplate.cpp
Fix regression of 18779013 for \smash
[lyx.git] / src / mathed / MathMacroTemplate.cpp
index e82de015bfddc0957ba69cd375a50565301acdda..53cec03f740a9d84efad953d48192a6a910bc900 100644 (file)
@@ -465,7 +465,7 @@ docstring MathMacroTemplate::name() const
 }
 
 
-void MathMacroTemplate::updateToContext(MacroContext const & mc) const
+void MathMacroTemplate::updateToContext(MacroContext const & mc)
 {
        redefinition_ = mc.get(name()) != 0;
 }
@@ -551,13 +551,9 @@ void MathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const
 
        // valid macro?
        MacroData const * macro = 0;
-       if (validName()) {
+       if (validName())
                macro = mi.macrocontext.get(name());
 
-               // updateToContext() - avoids another lookup
-               redefinition_ = macro != 0;
-       }
-
        // update look?
        int argsInDef = maxArgumentInDefinition();
        if (lookOutdated_ || argsInDef != argsInLook_) {
@@ -624,10 +620,13 @@ void MathMacroTemplate::edit(Cursor & cur, bool front, EntryDirection entry_from
 
 bool MathMacroTemplate::notifyCursorLeaves(Cursor const & old, Cursor & cur)
 {
+       unsigned int const nargs_before = nargs();
        commitEditChanges(cur, old);
        updateLook();
        cur.screenUpdateFlags(Update::Force);
-       return InsetMathNest::notifyCursorLeaves(old, cur);
+       // If we have removed a cell, we might have invalidated the cursor
+       return InsetMathNest::notifyCursorLeaves(old, cur)
+               || nargs() < nargs_before;
 }