Stefan Schimanski wrote:
Am 03.06.2007 um 21:28 schrieb Dov Feldstern:
Stefan Schimanski wrote:
1) In Text2.cpp, in the condition "if (cur.boundary() &&
!bidi.isBoundary...", it should be:
return setCursor(cur, cur.pit(), cur.pos(), true, false);
and not, as you have:
return setCursor(cur, cur.pit(), cur.pos() + 1, true, false);
(the + 1 is wrong; see what happens at the end of a line)
Isn't that what we discussed before that we want to jump +1 after a
boundary? If you have no space at the line end, you jump directly
over the next character, i.e. you end up at row.pos+1. If there is a
space you are at row.pos.
Almost. The jump should be from *before* the last character on the
previous line to *before* the first character on the next line. With
your current suggestion, it's from *after* the last character on the
previous line to *after* the first character on the next line. A
slight difference, but I think the former is more natural. It's also
the way used to work (1.3.X). I pretty sure you just mis-copied from a
different line, by mistake.
No, no. In fact I think this is more natural. You jump to the line end
(after the last character on the line) and then after the first in the
next line. Jumping directly into the next line is strange.
But then you have a somewhat weird situation, where you're at the end of
a line, and pressing delete deletes from the beginning of the next line,
where the cursor "isn't". That does not seem natural to me... (Of course
it's the opposite with backspace, but somehow that seems less strange...).
Maybe we're just better off not differentiating between the two cases
for now. Keep the current version of the patch (except for the +1 ---
again, look at the links I sent, it's just there by mistake). Later, we
can fine tune once it's in if necessary...
Give me an example where this is wrong. I think it's exactly what we
want
Here's where it's wrong: Take a paragraph with a line break with no
space (i.e., aaaaaaaaa.... until after the linebreak). Now, move the
cursor to *after* the last character on the first line. Go RIGHT once,
then LEFT twice and you'll end up at the original position. This is
wrong.
Right. But note that we are talking about big lines without space. So we
are speaking here about a case which probably never appears anyway. And
I am really getting tired. I think we are the only ones caring about
that, still no OK, no comment, no nothing from anybody about all this
RTL stuff :-/
(btw, I took that from your patch after realizing that it is in fact
the right thing to do ;-) )
Good, I'm glad we now agree on what *should* be :) . But I believe the
+1 is just mis-copied from a different line. My suggestion was to
first apply this:
http://permalink.gmane.org/gmane.editors.lyx.devel/86074 (which is
exactly your current patch, except for the +1 business, and an
insignificant change in the order of some of the clauses), and then
and then this: http://permalink.gmane.org/gmane.editors.lyx.devel/86169.
But please, let's commit... This is getting very confusing...
Right. I will prepare now a last set of patches and post them as a
proposal in a new thread. I think here nobody follows us anymore...
I think you're right. But try not to make new changes again, because
then everything starts all over...
Stefan
Thanks!
Dov