#include "insets/InsetTabular.h"
#include "insets/InsetText.h"
-#include "mathed/MathData.h"
#include "mathed/InsetMath.h"
#include "mathed/InsetMathScript.h"
#include "mathed/MacroTable.h"
+#include "mathed/MathData.h"
+#include "mathed/MathMacro.h"
#include <boost/assert.hpp>
#include <boost/bind.hpp>
// we can't move into anything new during selection
if (depth() >= anchor_.depth())
return false;
- if (!ptr_cmp(t.nucleus(), &anchor_[depth()].inset()))
+ if (t.nucleus() != &anchor_[depth()].inset())
return false;
return true;
InsetMathNest * const in = inset().asInsetMath()->asNestInset();
if (in && in->interpretString(*this, s))
return true;
- plainInsert(createInsetMath(name));
+ MathAtom atom = createInsetMath(name);
+ MathMacro * atomAsMacro = atom.nucleus()->asMacro();
+ if (atomAsMacro) {
+ // make non-greedy, i.e. don't eat parameters from the right
+ atomAsMacro->setDisplayMode(MathMacro::DISPLAY_NONGREEDY_INIT);
+ }
+ plainInsert(atom);
return true;
}