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.
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.
(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...
2) When committing, I would commit the changes in Text2.cpp separately
from the other changes: the changes in Text2.cpp solve bug 3754, the
other changes solve issue (3) of bug 3551; and the two are independent.
Ok, no problem.
* rtlspaces.patch: There is a inconsistency between the font of
spaces at RTL<->LTR boundaries. The whole space problem is discussed
in http://permalink.gmane.org/gmane.editors.lyx.devel/80783. An
illustration of the current situation and the one after this patch
are visible at http://article.gmane.org/gmane.editors.lyx.devel/86342
in the second picture. A discussion of the inconsistency can be found
in http://article.gmane.org/gmane.editors.lyx.devel/86425. (fixes
http://bugzilla.lyx.org/show_bug.cgi?id=3789). Dov had sent a very
good in-depth discussion and comparison to LyX 1.3 at
http://permalink.gmane.org/gmane.editors.lyx.devel/80783.
If somebody has an opinion about this issue, please speak up. I think
the version implemented by this patch is simple on the one hand, but
also implements the behavior of Latex. And I think it is not too bad
that it does not hide anything from the user or is doing magic he
cannot understand.
*I* like this, but I foresee a lot of resistance from users. Let's see
what other's say, I'll still try to ask about it on the users' list.
Meanwhile, the other patches shouldn't wait for this one --- they
should be committed ASAP.
Right. José?
Stefan