Przeglądaj źródła

Unbind unload listener when destroying editor

Alasdair Smith 8 lat temu
rodzic
commit
6c7e942470

+ 5 - 2
services/web/public/coffee/ide/editor/directives/aceEditor.coffee

@@ -386,15 +386,18 @@ define [
 					e.oldSession?.selection.off 'changeCursor', cursorPositionManager.onCursorChange
 					e.oldSession?.selection.off 'changeCursor', cursorPositionManager.onCursorChange
 					e.session.selection.on 'changeCursor', cursorPositionManager.onCursorChange
 					e.session.selection.on 'changeCursor', cursorPositionManager.onCursorChange
 
 
+				onUnloadForCursorPosition = () ->
+					cursorPositionManager.onUnload(editor.getSession())
+
 				initCursorPosition = () ->
 				initCursorPosition = () ->
 					cursorPositionManager.init()
 					cursorPositionManager.init()
 					editor.on 'changeSession', onSessionChangeForCursorPosition
 					editor.on 'changeSession', onSessionChangeForCursorPosition
 					onSessionChangeForCursorPosition({ session: editor.getSession() }) # Force initial setup
 					onSessionChangeForCursorPosition({ session: editor.getSession() }) # Force initial setup
-					$(window).on "unload", () ->
-						cursorPositionManager.onUnload(editor.getSession())
+					$(window).on "unload", onUnloadForCursorPosition
 
 
 				tearDownCursorPosition = () ->
 				tearDownCursorPosition = () ->
 					editor.off 'changeSession', onSessionChangeForCursorPosition
 					editor.off 'changeSession', onSessionChangeForCursorPosition
+					$(window).off "unload", onUnloadForCursorPosition
 
 
 				attachToAce = (sharejs_doc) ->
 				attachToAce = (sharejs_doc) ->
 					lines = sharejs_doc.getSnapshot().split("\n")
 					lines = sharejs_doc.getSnapshot().split("\n")