1) Create a new app with a single `KTextEditor::View` widget (similar to kwrite).
2) connect the view's `cursorPositionChanged` signal with a slot in the window which contains the following code
``` qDebug() << " original cursor" << view->cursorPosition();
QPoint p1 = view->cursorToCoordinate(view->cursorPosition());
KTextEditor::Cursor c1 = view->coordinatesToCursor(p1);
qDebug() << "converted cursor" << c1;
qDebug() << "converted cursor 2" << view->coordinatesToCursor(view->cursorPositionCoordinates());```
3) Run the application and start typing (I typed 52 characters in the first line) and then pressed the <Enter> key sometimes)
4) Press Back Arrow key until you are in the beginning of the document.
In steps 3 and 4 the three cursors are the same (this wasn't the case before).
Before you get something like the following
```
original cursor (0, 1)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 2)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 3)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 4)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 5)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 6)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 7)
converted cursor (-1, -1)
......
original cursor (0, 48)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 49)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 50)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 51)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 52)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (1, 0)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (2, 0)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (3, 0)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
.....
original cursor (0, 52)
converted cursor (-1, -1)
converted cursor 2 (-1, -1)
original cursor (0, 51)
converted cursor (0, 51)
converted cursor 2 (-1, -1)
original cursor (0, 50)
converted cursor (0, 50)
converted cursor 2 (-1, -1)
original cursor (0, 49)
converted cursor (0, 49)
converted cursor 2 (-1, -1)
original cursor (0, 48)
converted cursor (0, 48)
converted cursor 2 (-1, -1)
original cursor (0, 47)
converted cursor (0, 47)
converted cursor 2 (0, 51)
original cursor (0, 46)
converted cursor (0, 46)
converted cursor 2 (0, 50)
original cursor (0, 45)
converted cursor (0, 45)
converted cursor 2 (0, 49)
original cursor (0, 44)
converted cursor (0, 44)
converted cursor 2 (0, 48)
original cursor (0, 43)
converted cursor (0, 43)
converted cursor 2 (0, 47)
original cursor (0, 42)
converted cursor (0, 42)
converted cursor 2 (0, 46)
original cursor (0, 41)
converted cursor (0, 41)
converted cursor 2 (0, 45)
.....
original cursor (0, 6)
converted cursor (0, 6)
converted cursor 2 (0, 10)
original cursor (0, 5)
converted cursor (0, 5)
converted cursor 2 (0, 9)
original cursor (0, 4)
converted cursor (0, 4)
converted cursor 2 (0, 8)
original cursor (0, 3)
converted cursor (0, 3)
converted cursor 2 (0, 7)
original cursor (0, 2)
converted cursor (0, 2)
converted cursor 2 (0, 6)
original cursor (0, 1)
converted cursor (0, 1)
converted cursor 2 (0, 5)
original cursor (0, 0)
converted cursor (0, 0)
converted cursor 2 (0, 4)
```
after this patch is applied the converted cursor are consistent with the original (correct) cursor.