Describe the bug
Sometimes, after moving the caret when another user is editing the document, the caret returns to the previous spot.
I think the following is happenning:
After changing selection, prosemirror updates its state after receiving the event selectionchange. Also, after updating the document, y-prosemirror restores the saved caret position. However, if the user is moving the caret (by clicking, for example) and another user is editing the document, we may have the mousedown event, then y-prosemirror updates the prosemirror document and restores selection, and only then the selectionchange related to the click is dispatched. However, the original caret change has been overridden by y-prosemirror.
To Reproduce
Create a document with some text;
One user continuously edit the document(by adding a letter, for example);
The other user clicks in different positions in the document. Sometimes, the cursor will not be placed in the clicked place.
Expected behavior
The caret should always stay in the clicked place.
Describe the bug Sometimes, after moving the caret when another user is editing the document, the caret returns to the previous spot. I think the following is happenning: After changing selection, prosemirror updates its state after receiving the event
selectionchange
. Also, after updating the document, y-prosemirror restores the saved caret position. However, if the user is moving the caret (by clicking, for example) and another user is editing the document, we may have themousedown
event, then y-prosemirror updates the prosemirror document and restores selection, and only then theselectionchange
related to the click is dispatched. However, the original caret change has been overridden byy-prosemirror
.To Reproduce
Expected behavior The caret should always stay in the clicked place.
Environment Information Chrome 116.0.5845.110 Firefox 116.0.3 yjs 13.5.52 y-websocket 1.5.0 y-prosemirror 1.2.1