// found tail script? E.g. \foo{a}b^x
if (scriptToPutAround.nucleus()) {
+ InsetMathScript * scriptInset =
+ scriptToPutAround.nucleus()->asScriptInset();
+ // In the math parser we remove empty braces in the base
+ // of a script inset, but we have to restore them here.
+ if (scriptInset->nuc().empty()) {
+ MathData ar;
+ scriptInset->nuc().push_back(
+ MathAtom(new InsetMathBrace(ar)));
+ }
// put macro into a script inset
- scriptToPutAround.nucleus()->asScriptInset()->nuc()[0]
- = operator[](macroPos);
+ scriptInset->nuc()[0] = operator[](macroPos);
operator[](macroPos) = scriptToPutAround;
// go into the script inset nucleus
if (cur && thisPos == int(macroPos))
cur->append(0, 0);
-
+
// get pointer to "deep" copied macro inset
- InsetMathScript * scriptInset
- = operator[](macroPos).nucleus()->asScriptInset();
+ scriptInset = operator[](macroPos).nucleus()->asScriptInset();
macroInset = scriptInset->nuc()[0].nucleus()->asMacro();
}
// fix cursor if right of p
if (thisPos >= int(p))
(*cur)[thisSlice].pos() -= p - (macroPos + 1);
-
+
// was the macro inset just inserted interactively and was now folded
// and the cursor is just behind?
if ((*cur)[thisSlice].pos() == int(macroPos + 1)