-MathInset::result_type MathScriptInset::dispatch
- (FuncRequest const & cmd, idx_type & idx, pos_type & pos)
+void MathScriptInset::notifyCursorLeaves(LCursor & cur)
+{
+ MathNestInset::notifyCursorLeaves(cur);
+
+ // remove empty scripts if possible
+ if (nargs() > 2 && cur.idx() == 2 && cell(2).empty()) {
+ // must be a subscript...
+ removeScript(false);
+ // sanitize cursor, even if this slice will be removed immediately
+ cur.idx() = 0;
+ cur.pos() = 0;
+ } else if (nargs() > 1 && cur.idx() == 1 && cell(1).empty()) {
+ // could be either subscript or super script
+ removeScript(cell_1_is_up_);
+ // sanitize cursor, even if this slice will be removed immediately
+ cur.idx() = 0;
+ cur.pos() = 0;
+ }
+}
+
+
+void MathScriptInset::priv_dispatch(LCursor & cur, FuncRequest & cmd)