+void MathScriptInset::infoize(std::ostream & os) const
+{
+ os << "Scripts";
+}
+
+
+void MathScriptInset::infoize2(std::ostream & os) const
+{
+ if (limits_)
+ os << (limits_ == 1 ? ", Displayed limits" : ", Inlined limits");
+}
+
+
+void MathScriptInset::notifyCursorLeaves(LCursor & cur)
+{
+ MathNestInset::notifyCursorLeaves(cur);
+
+ lyxerr << "MathScriptInset::notifyCursorLeaves: 1 " << cur << endl;
+
+ // remove empty scripts if possible
+if (1) {
+ if (nargs() > 2 && cur.idx() == 2 && cell(2).empty()) {
+ // must be a subscript...
+ removeScript(false);
+ } else if (nargs() > 1 && cur.idx() == 1 && cell(1).empty()) {
+ // could be either subscript or super script
+ removeScript(cell_1_is_up_);
+ }
+}
+
+ lyxerr << "MathScriptInset::notifyCursorLeaves: 2 " << cur << endl;
+}
+
+
+void MathScriptInset::doDispatch(LCursor & cur, FuncRequest & cmd)
+{
+ //lyxerr << "MathScriptInset: request: " << cmd << std::endl;
+
+ if (cmd.action == LFUN_MATH_LIMITS) {
+ if (!cmd.argument.empty()) {
+ if (cmd.argument == "limits")
+ limits_ = 1;
+ else if (cmd.argument == "nolimits")
+ limits_ = -1;
+ else
+ limits_ = 0;
+ } else if (limits_ == 0)
+ limits_ = hasLimits() ? -1 : 1;
+ else
+ limits_ = 0;
+ return;
+ }
+
+ MathNestInset::doDispatch(cur, cmd);
+}