I have a patch, I'd like to commit. It consists of some of the stuff which was approved, plus some comments for the code, and a little more const-correctness here and there.

Also, I fixed the breakParagraph bug by remove some obsolete stuff. There was some logic which is not relevant anymore.

Another problem with a crash after pressing space at the start of the document twice is also fixed.

But the problem is that I can not make diffs for some reason. It just hangs and hangs. Does anybody else experience this problem? CVS is soo slow today.

Anyway, I have found a reproducible problem:

1) Start a new document,
2) Type "a", return, "b", cursor up, return
3) cursor right
4) cursor right: Strange thing happens, the cursor moves on the empty line.
5) cursor down: Boom. Assert in getRowNearY.

I believe the problem appears after 3: It probably removes the empty paragraph, but forgets to update the screen. Therefore in step 4, the cursor moves on the "b" line although it does not look that way. And things go completely wrong when we try to move down, because that row exists on the screen, but not behind the curtains.

You can verify this: After step 3, resize the window to force a rebreak, and the empty line disappears, and everything works as intended.

So, I guess the problem is that after empty line removal, we need to rebreak the screen.

I haven't looked for how to do that yet.

Another reproducable bug is the cursor x position after cut/paste when you move up or down: It does not move according to the new cursor position, but according to the old one before the cut. Any ideas where to look?

Regards,
Asger

Reply via email to