]> git.lyx.org Git - features.git/commitdiff
Fixup the fixup d0acc3e57044: use editable()/isActive()
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 23 Jun 2017 18:32:32 +0000 (20:32 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 27 Jun 2017 14:35:39 +0000 (16:35 +0200)
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.

src/DocIterator.cpp

index fe1250ff335bf5d91330d12c79ca7bf5c60f241a..ac57b34a0ea0ae4256cc5a3061eb37a27d3742cd 100644 (file)
@@ -562,7 +562,9 @@ bool DocIterator::fixIfBroken()
        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");