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

Reply via email to