}
+bool Cursor::inCoordCache() const
+{
+ CoordCache::Insets const & icache = bv_->coordCache().getInsets();
+ for (size_t i = 0 ; i < depth() ; ++i)
+ if (!icache.has(&(*this)[i].inset()))
+ return false;
+ return true;
+}
+
+
void Cursor::getPos(int & x, int & y) const
{
Point p = bv().getPos(*this);
}
- bool moved = (new_cur.pos() != pos()
- || new_cur.pit() != pit()
- || new_cur.boundary() != boundary()
- || &new_cur.inset() != &inset());
+ bool const moved = new_cur != *this || new_cur.boundary() != boundary();
if (moved) {
LYXERR(Debug::RTL, "moving to: " << new_cur.pos()
}
- bool moved = (new_cur.pos() != pos()
- || new_cur.pit() != pit()
- || new_cur.boundary() != boundary());
+ bool const moved = new_cur != *this || new_cur.boundary() != boundary();
if (moved) {
LYXERR(Debug::RTL, "moving to: " << new_cur.pos()
++pos();
inset().setBuffer(bv_->buffer());
inset().initView();
- forceBufferUpdate();
+ checkBufferStructure();
}
// Make sure that cur gets back whatever happened to dummy (Lgb)
operator=(dummy);
}
+ if (pos() && paragraph().isEnvSeparator(pos() - 1))
+ posBackward();
} else {
// if there is a selection, we stay out of any inset,
// and just jump to the right position: