]> git.lyx.org Git - lyx.git/blobdiff - src/cursor.C
make sure the 'setStatus(Collapsed)' crash won't occur otherwise
[lyx.git] / src / cursor.C
index ac9bd45ab8ec4aff76e5812afd04d4b9dc4f3a03..d77f7c25c918735a8a0a0390eaa6e4ecca31088f 100644 (file)
@@ -123,8 +123,6 @@ namespace {
        {
                BOOST_ASSERT(!cursor.empty());
                CursorSlice bottom = cursor[0];
-               LyXText * text = bottom.text();
-               BOOST_ASSERT(text);
 
                DocIterator it = doc_iterator_begin(bottom.inset());
                DocIterator const et = doc_iterator_end(bottom.inset());
@@ -509,13 +507,24 @@ std::ostream & operator<<(std::ostream & os, LCursor const & cur)
 
 bool LCursor::isInside(InsetBase const * p)
 {
-       for (unsigned i = 0; i < depth(); ++i)
+       for (size_t i = 0; i != depth(); ++i)
                if (&operator[](i).inset() == p)
                        return true;
        return false;
 }
 
 
+void LCursor::leaveInset(InsetBase const & inset)
+{
+       for (size_t i = 0; i != depth(); ++i) {
+               if (&operator[](i).inset() == &inset) {
+                       resize(i);
+                       return;
+               }
+       }
+}
+
+
 bool LCursor::openable(MathAtom const & t) const
 {
        if (!t->isActive())
@@ -1169,7 +1178,7 @@ void LCursor::fixIfBroken()
                               << ". Trying to correct this."  << endl;
                        newdepth = copy.depth() - 1;
                }
-               copy.pop();     
+               copy.pop();
        }
        // shrink cursor to a size where everything is valid, possibly
        // leaving insets