mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Listen for changes to the CodeMirror Doc, instead of all changes to the editor
This prevents an issue where switching docs (i.e. files) would cause the newly opened doc from being inserted into the old doc. This approach is similar to Ace's sessions.
This commit is contained in:
parent
c85e9ba3b1
commit
e1187f3d8a
1 changed files with 5 additions and 4 deletions
|
@ -36,6 +36,8 @@ window.sharejs.extendDoc 'attach_cm', (editor, keepEditorContents) ->
|
||||||
throw new Error 'Only text documents can be attached to CodeMirror2'
|
throw new Error 'Only text documents can be attached to CodeMirror2'
|
||||||
|
|
||||||
sharedoc = @
|
sharedoc = @
|
||||||
|
editorDoc = editor.getDoc()
|
||||||
|
|
||||||
check = ->
|
check = ->
|
||||||
window.setTimeout ->
|
window.setTimeout ->
|
||||||
editorText = editor.getValue()
|
editorText = editor.getValue()
|
||||||
|
@ -64,11 +66,10 @@ window.sharejs.extendDoc 'attach_cm', (editor, keepEditorContents) ->
|
||||||
# Listen for edits in CodeMirror.
|
# Listen for edits in CodeMirror.
|
||||||
editorListener = (ed, change) ->
|
editorListener = (ed, change) ->
|
||||||
return if suppress
|
return if suppress
|
||||||
applyCMToShareJS editor, change, sharedoc
|
applyCMToShareJS editorDoc, change, sharedoc
|
||||||
|
|
||||||
check()
|
check()
|
||||||
|
|
||||||
editor.on 'change', editorListener
|
editorDoc.on 'change', editorListener
|
||||||
|
|
||||||
@on 'insert', (pos, text) ->
|
@on 'insert', (pos, text) ->
|
||||||
suppress = true
|
suppress = true
|
||||||
|
@ -87,7 +88,7 @@ window.sharejs.extendDoc 'attach_cm', (editor, keepEditorContents) ->
|
||||||
|
|
||||||
@detach_cm = ->
|
@detach_cm = ->
|
||||||
# TODO: can we remove the insert and delete event callbacks?
|
# TODO: can we remove the insert and delete event callbacks?
|
||||||
editor.off 'onChange', editorListener
|
editorDoc.off 'change', editorListener
|
||||||
delete @detach_cm
|
delete @detach_cm
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in a new issue