Andre Poenitz wrote:
On Sun, May 06, 2007 at 03:19:05AM +0300, Dov Feldstern wrote:
Attached is a fix for (1) and (2) (but not (3)) of bug 3551
(http://bugzilla.lyx.org/show_bug.cgi?id=3551). I'd be happy to hear any
comments, I'm not sure that I understand everything that I did, but it
does work.
Have you checked in deeply nested insets? Isn't outerParagraph the
outmost level?
Andre'
Well, yes, that's what I intended... Is this the behavior we want? I'm
not sure.
My reasoning is this: When I'm in an RTL paragraph, I want to be able to
get from the beginning of the paragraph to its end by holding down one
arrow key. Therefore, I want the same arrow key to mean "logical
forward" throughout the whole paragraph --- and if I have insets open,
then I want to be able to traverse those insets in the same manner.
That's why I want the outermost paragraph to determine whether a
specific arrow means forward or backwards, for all insets inside it, no
matter how deeply nested.
This seems to make sense (to me, anyhow, an RTL user who likes logical
mode movement ;) ) for short insets. For long insets, it's more
complicated: if I have three paragraphs inside a footnote, and the
footnote is in the opposite language from the paragraph, do I really
want to have to use the arrow keys "backwards" for all those paragraphs?
I'm not sure.
But you have to realize a few things:
*) There is no "right" solution -- there'll always be some quirks.
That's the bane of using a "backwards" language... ;) And how to
correctly deal with this, is, in the end, very much a matter of taste.
*) The more common situation, I think, is for insets to be relatively
short, and in those cases I think its clearer that this suggestion makes
sense.
*) If a user is trying to move around inside a document, and presses an
arrow key, he very quickly discovers if the cursor is moving in the
expected direction or the opposite direction, and quickly adjusts
accordingly. So even if the directions are opposite his expectation,
it's not so bad --- you'd be surprised how quickly you adjust to that.
The more disruptive behavior, I think, is the situation I described
above, where you're trying to quickly traverse a large chunk of text,
and suddenly your cursor gets "stuck". In that case, to get out of being
stuck, you have to carefully move in one direction and then the other,
be careful what direction you move in to enter and exit the inset, until
you have passed the "obstacle", and then you reach the next one...
That's why I feel that it is important that within a top-most level
paragraph, and all insets nested in it, a specific arrow key have only
one logical meaning: forward or backwards.
(Of course, now you run into the same problem between paragraphs, so one
could claim that perhaps in the entire document an arrow key should have
only one logical meaning, to be determined by the document's language.
However, to me that seems like overkill. Again, this is very much a
matter of taste... ;) )
Dov