While
522516d9 was too strong and broke mathed,
d0acc3e57044 is too
lenient and can accept insets (mathed/CommandInset, InsetInfo) that
have a positive nargs() but are not editable (because they encapsulate
something).
Therefore the best solution for now is to use editable() in text and
isActive() in mathed, until those two things are merged.
Part of #10667.
size_t n = slices_.size();
for (; i != n; ++i) {
CursorSlice & cs = slices_[i];
- if (&cs.inset() != inset || cs.nargs() == 0) {
+ if (&cs.inset() != inset
+ || (cs.inset().inMathed() ? ! cs.inset().isActive()
+ : ! cs.inset().editable())) {
// the whole slice is wrong, chop off this as well
--i;
LYXERR(Debug::DEBUG, "fixIfBroken(): inset changed");