- int const last = par.size();
- for (int i = 0; i < last; ++i)
- par[i].inset().edit(cursor(), true);
+ size_t const n = dit.depth();
+ for (size_t i = 0; i < n; ++i)
+ dit[i].inset().edit(cursor(), true);
+
+ cursor().setCursor(dit);
+ cursor().selection() = false;
+}
+
+
+void BufferView::mouseSetCursor(LCursor & cur)
+{
+ BOOST_ASSERT(&cur.bv() == this);
+
+ // Has the cursor just left the inset?
+ if (&cursor().inset() != &cur.inset())
+ cursor().inset().notifyCursorLeaves(cursor());
+
+ // do the dEPM magic if needed
+ if (cursor().inTexted())
+ cursor().text()->deleteEmptyParagraphMechanism(cur, cursor());
+
+ cursor() = cur;
+ cursor().clearSelection();
+ cursor().setTargetX();
+ finishUndo();