]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/formulabase.C
more IU
[lyx.git] / src / mathed / formulabase.C
index 5e9d215b3db88216a9d97938ba2fdc5ae99c1395..3ff6ba7d170f9a37c827a6342223ded13313fdfd 100644 (file)
@@ -830,7 +830,7 @@ bool InsetFormulaBase::searchForward(BufferView * bv, string const & str,
 #warning pretty ugly
 #endif
        static InsetFormulaBase * lastformula = 0;
-       static MathIterator current = MathIterator(ibegin(par().nucleus()));
+       static CursorBase current = CursorBase(ibegin(par().nucleus()));
        static MathArray ar;
        static string laststr;
 
@@ -842,18 +842,20 @@ bool InsetFormulaBase::searchForward(BufferView * bv, string const & str,
                ar.clear();
                mathed_parse_cell(ar, str);
        } else {
-               ++current;
+               increment(current);
        }
        //lyxerr << "searching '" << str << "' in " << this << ar << endl;
 
-       for (MathIterator it = current; it != iend(par().nucleus()); ++it) {
-               if (it.cell().matchpart(ar, it.back().pos_)) {
+       for (CursorBase it = current; it != iend(par().nucleus()); increment(it)) {
+               CursorSlice & top = it.back();
+               MathArray const & a = top.asMathInset()->cell(top.idx_);
+               if (a.matchpart(ar, top.pos_)) {
                        delete mathcursor;
                        mathcursor = new MathCursor(this, true);
                        //metrics(bv);
                        mathcursor->setSelection(it, ar.size());
                        current = it;
-                       it.jump(ar.size());
+                       top.pos_ += ar.size();
                        bv->update();
                        return true;
                }