Open vitmf opened 2 years ago
I don't understand yjs
very well, but I think I have some clues.
ystate
initialization be inside the event callbacks?
https://github.com/yjs/y-prosemirror/blob/e3755b12afca45f2253aee44b3f3bf23803dc9b9/src/plugins/undo-plugin.js#L73-L80stack-item-popped
event seems to be triggered after the document has been restored, so binding.beforeTransactionSelection
is only updated after the selection has already been restored.undo
plugin, after a transaction prevSel
is saved in the plugin state so it can be added to the meta
of the undo stack item. However, if UnderManager
merges the edits, won't prevSel
refer to a wrong position? (edit: reading more about yjs, this does not seem to be a problem, but more generally, could prevSel
refer to the wrong position?)
Describe the bug Cursor is placed in a strange position after changing a node type and undoing it.
To Reproduce Steps to reproduce the behavior:
Expected behavior After ctrl+z, the cursor should stay at the end of the second line. Even if the cursor is placed at the beginning of the line, backspace should not create the blue border.
Screenshots https://user-images.githubusercontent.com/640041/160831412-2a79ee9d-0ad1-4790-844f-3357ac42e4d0.mp4
Environment Information Chrome 98.0.4758.102 on the demo page.
Additional context Testing in a local project, it seems the cursor is placed between nodes.