]> git.lyx.org Git - features.git/commitdiff
Try to end the neverending fixIfBroken saga
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 20 Jul 2017 09:18:20 +0000 (11:18 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 20 Jul 2017 09:18:20 +0000 (11:18 +0200)
This is a fixup to the  series of commits 522516d9d0acc3e513c3c148.

Actually the right thing to consider in all situations is isActive(),
which really means `can a cursor be in there?'.

Improve the description of isActive() and editable() in Inset.h.

Set isActive() to false for InsetInfo, since no cursor should ever go there.

Again part of #10667.

src/DocIterator.cpp
src/insets/Inset.h
src/insets/InsetInfo.h

index 4aabc4e9f52ebf1994ea26704af309d9fb7b25a1..38f2393224b1e37b1839537f12ea6b85008ec8d8 100644 (file)
@@ -562,9 +562,7 @@ bool DocIterator::fixIfBroken()
        size_t n = slices_.size();
        for (; i != n; ++i) {
                CursorSlice & cs = slices_[i];
-               if (&cs.inset() != inset
-                   || (cs.inset().inMathed() ? ! cs.inset().isActive()
-                                             : ! cs.inset().editable())) {
+               if (&cs.inset() != inset || ! cs.inset().isActive()) {
                        // the whole slice is wrong, chop off this as well
                        --i;
                        LYXERR(Debug::DEBUG, "fixIfBroken(): inset changed");
index e5a3991548e32f0a5eb6c481d0255a008577c981..f10ab3f88332e93a98217c2a83b3178eb6b7630a 100644 (file)
@@ -342,18 +342,18 @@ public:
                                                         size_t const maxlen = TOC_ENTRY_LENGTH,
                                                         bool const shorten = true) const;
 
+       /// Can a cursor be put in there ?
+       /// Forced to false for insets that have hidden contents, like
+       /// InsetMathCommand and InsetInfo.
+       virtual bool isActive() const { return nargs() > 0; }
        /// can the contents of the inset be edited on screen ?
-       // true for InsetCollapsables (not ButtonOnly) (not InsetInfo), InsetText
+       // equivalent to isActive except for closed InsetCollapsable
        virtual bool editable() const;
        /// has the Inset settings that can be modified in a dialog ?
        virtual bool hasSettings() const;
        /// can we go further down on mouse click?
-       // true for InsetCaption, InsetCollapsables (not ButtonOnly), InsetTabular
+       /// true for InsetCaption, InsetCollapsables (not ButtonOnly), InsetTabular
        virtual bool descendable(BufferView const &) const { return false; }
-       /// is this an inset that can be moved into?
-       /// FIXME: merge with editable()
-       // true for InsetTabular & InsetText
-       virtual bool isActive() const { return nargs() > 0; }
        /// can we click at the specified position ?
        virtual bool clickable(BufferView const &, int, int) const { return false; }
        /// Move one cell backwards
index 25fca87e0a23c5583ccf01c4f9e17d8b2eb87887..221d6fb09e3c28075828683037e0bb804d85a68c 100644 (file)
@@ -101,6 +101,8 @@ public:
        ///
        Inset * editXY(Cursor & cur, int x, int y);
        ///
+       bool isActive() const { return false; }
+       ///
        bool editable() const { return false; }
        ///
        bool hasSettings() const { return true; }