Angus Leeming wrote: > However, note the position of the cursor...
The following works for me (LyXFunc.C): case LFUN_ALL_INSETS_TOGGLE: { string action; string const name = split(argument, action, ' '); InsetBase::Code const inset_code = InsetBase::translate(name); LCursor & cur = view()->cursor(); FuncRequest fr(LFUN_INSET_TOGGLE, action); InsetIterator it(owner->buffer()->inset()); for (; it; ++it) { if (inset_code == InsetBase::NO_CODE || inset_code == it->lyxCode()) { it->dispatch(cur, fr); + if (&cur.inset() == &*it) + cur.pop(); } } break; } Alfredo