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'

Reply via email to