On Wed, May 30, 2007 at 11:36:13PM +0200, Stefan Schimanski wrote:
> 
> Am 30.05.2007 um 23:29 schrieb Jean-Marc Lasgouttes:
> 
> >>>>>>"Dov" == Dov Feldstern <[EMAIL PROTECTED]> writes:
> >
> >Dov> Please, could someone respond regarding this patch from Elazar?
> >Dov> It fixes issue (3) of
> >Dov> http://bugzilla.lyx.org/show_bug.cgi?id=3551, which is a
> >Dov> regression.
> >
> >Dov> It works. The concept makes sense. The implementation -- well, we
> >Dov> don't love it, but we haven't gotten any better suggestions. (The
> >Dov> question is: how to identify the difference between being "at an
> >Dov> inset" vs. "inside it".) It's safe --- at the very worst, it will
> >Dov> only affect bidi users.
> >
> >I still have the nasty feeling that the correction could be done in
> >somewhere like coordOffset (bufferview_funcs.cpp), but since I do not
> >have the energy to actually research it, I think indeed that the patch
> >could be committed.
> >
> >Actually, coordOffset is not good because it also handles non-text
> >insets.
> 
> I will make a clean patch tomorrow morning. It adds another return  
> value to cursorPos which tell whether insets in deeper slices will be  
> put to the left or right of the returned position. This will require  
> of course a change in the signature of all the cursorPos  
> implementations is needed. But that's trivial. coordOffset will use  
> that then to compute the right cursor position. I think that that's  
> the right way to implement it.  Accessing the bufferview cursor is  
> even wrong, e.g. for selection spanning from an RTL to an LTR  
> paragraph (look at my other patch for a working RTL selection  
> implementation).
 
Hmmm, this feels like a proper solution, not a hack...

- Martin
 

Reply via email to