diff --git a/src/app.js b/src/app.js index 7f4850614d..cb21f7aa45 100644 --- a/src/app.js +++ b/src/app.js @@ -277,6 +277,8 @@ var run = function () { return false }) + editor.event.register('switched', updateFiles) + function switchToFile (file) { editor.setCacheFile(file) updateFiles() @@ -573,7 +575,9 @@ var run = function () { compileTimeout = window.setTimeout(runCompiler, 300) } - editor.onChangeSetup(editorOnChange) + editor.event.register('changed', editorOnChange) + // in order to save the file when switching + editor.event.register('switched', editorOnChange) $('#compile').click(function () { runCompiler() diff --git a/src/app/debugger.js b/src/app/debugger.js index 6a604b9e9b..3dbe103b6c 100644 --- a/src/app/debugger.js +++ b/src/app/debugger.js @@ -26,10 +26,9 @@ function Debugger (id, editor, compiler, executionContextEvent, switchToFile, of self.removeCurrentMarker() }) - this.editor.onChangeSetup(function () { - if (arguments.length > 0) { // if arguments.length === 0 this is a session change, we don't want to stop debugging in that case - self.debugger.unLoad() - } + // unload if a file has changed (but not if tabs were switched) + editor.event.register('changed', function () { + self.debugger.unLoad() }) // register selected code item, highlight the corresponding source location diff --git a/src/app/editor.js b/src/app/editor.js index a3e6f3885b..a99044d4a3 100644 --- a/src/app/editor.js +++ b/src/app/editor.js @@ -149,14 +149,6 @@ function Editor (doNotLoadStorage, storage) { editor.getSession().setAnnotations(sourceAnnotations) } - this.onChangeSetup = function (onChange) { - editor.getSession().on('change', onChange) - editor.on('changeSession', function () { - editor.getSession().on('change', onChange) - onChange() - }) - } - this.handleErrorClick = function (errLine, errCol) { editor.focus() editor.gotoLine(errLine + 1, errCol - 1, true) @@ -172,6 +164,13 @@ function Editor (doNotLoadStorage, storage) { } // Do setup on initialisation here + editor.on('changeSession', function () { + event.trigger('switched', []) + + editor.getSession().on('change', function () { + event.trigger('changed', []) + }) + }) // Unmap ctrl-t & ctrl-f editor.commands.bindKeys({ 'ctrl-t': null })