On Wed, Sep 24, 2008 at 09:11:19PM +0200, Vincent van Ravesteijn - TNW wrote: > How can I modify the anchor position of a selection ? > > void InsetListings::doDispatch(Cursor & cur, FuncRequest & cmd) > { > ++cur.anchor().pos() > } > > Or something like this.. > > > In the following code, shouldn't we return a const CursorSlice and/or > document that the returned CursorSlice isn't the true anchor, but a > normalized _copy_ of the anchor ? > > /// access to normalized selection anchor > CursorSlice Cursor::anchor() const > { > LASSERT(anchor_.depth() >= depth(), /**/); > CursorSlice normal = anchor_[depth() - 1]; > if (depth() < anchor_.depth() && top() <= normal) { > // anchor is behind cursor -> move anchor behind the > inset > ++normal.pos(); > } > return normal; > }
You can do both. But anchor() does not seem to be used much outside of Cursor anyway, so returning a const ref to the un-normalized anchor and normalizing explicitly if needed might be an option, too. Andre'