]> git.lyx.org Git - lyx.git/blobdiff - src/DocIterator.cpp
* There are cases where updateLabels is not called because no
[lyx.git] / src / DocIterator.cpp
index 3d2c18d6347f18310b3ccce42e2e1c1ca56e40b7..f444f42193a1e7c692c332635cd58bb36069ac4b 100644 (file)
@@ -247,24 +247,16 @@ Inset * DocIterator::innerInsetOfType(int code) const
 }
 
 
-void DocIterator::forwardPos(bool ignorecollapsed)
+// This duplicates code above, but is in the critical path.
+// So please think twice before adding stuff
+void DocIterator::forwardPos()
 {
-       //this dog bites his tail
+       // this dog bites his tail
        if (empty()) {
                push_back(CursorSlice(*inset_));
                return;
        }
 
-       Inset * const nextinset = nextInset();
-       // jump over collapsables if they are collapsed
-       // FIXME: the check for asInsetMath() shouldn't be necessary
-       // but math insets do not return a sensible editable() state yet.
-       if (ignorecollapsed && nextinset && (!nextinset->asInsetMath()
-           && nextinset->editable() != Inset::HIGHLY_EDITABLE)) {
-               ++top().pos();
-               return;
-       }
-
        CursorSlice & tip = top();
        //lyxerr << "XXX\n" << *this << endl;
 
@@ -302,6 +294,20 @@ void DocIterator::forwardPos(bool ignorecollapsed)
 }
 
 
+void DocIterator::forwardPosIgnoreCollapsed()
+{
+       Inset * const nextinset = nextInset();
+       // FIXME: the check for asInsetMath() shouldn't be necessary
+       // but math insets do not return a sensible editable() state yet.
+       if (nextinset && !nextinset->asInsetMath()
+           && nextinset->editable() != Inset::HIGHLY_EDITABLE) {
+               ++top().pos();
+               return;
+       }
+       forwardPos();
+}
+
+
 void DocIterator::forwardPar()
 {
        forwardPos();
@@ -532,29 +538,6 @@ ostream & operator<<(ostream & os, DocIterator const & dit)
 }
 
 
-bool operator<(DocIterator const & p, DocIterator const & q)
-{
-       size_t depth = min(p.depth(), q.depth());
-       for (size_t i = 0 ; i < depth ; ++i) {
-               if (p[i] != q[i])
-                       return p[i] < q[i];
-       }
-       return p.depth() < q.depth();
-}
-
-
-bool operator>(DocIterator const & p, DocIterator const & q)
-{
-       return q < p;
-}
-
-
-bool operator<=(DocIterator const & p, DocIterator const & q)
-{
-       return !(q < p);
-}
-
-
 ///////////////////////////////////////////////////////
 
 StableDocIterator::StableDocIterator(DocIterator const & dit)