X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/811645a7d810c562f38edc705affff6822ebbdc9..ab787c87caf7725e7c1c451fb2550a6619bab082:/src/editor/modules/sourceEditor/sourceEditor.js

diff --git a/src/editor/modules/sourceEditor/sourceEditor.js b/src/editor/modules/sourceEditor/sourceEditor.js
index c805b1b..12536ac 100644
--- a/src/editor/modules/sourceEditor/sourceEditor.js
+++ b/src/editor/modules/sourceEditor/sourceEditor.js
@@ -15,17 +15,20 @@ return function(sandbox) {
             editor.gotoLine(0);
             documentEditedHere = false;
 
-            sandbox.publish('documentSet');
             documentIsDirty = false;
         }
     };
 
     view.onHide = function() {
         if(documentEditedHere) {
-            documentEditedHere = false;
-            wlxmlDocument.loadXML(editor.getValue());
+            commitDocument();
         }
     };
+
+    var commitDocument = function() {
+        documentEditedHere = false;
+        wlxmlDocument.loadXML(editor.getValue());
+    };
     
     /* globals ace */
     var editor = ace.edit(view.find('#rng-sourceEditor-editor')[0]),
@@ -34,10 +37,6 @@ return function(sandbox) {
     session.setMode('ace/mode/xml');
     session.setUseWrapMode(true);
     
-    $('textarea', view).on('keyup', function() {
-        documentEditedHere = true;
-    });
-    
     editor.getSession().on('change', function() {
         documentEditedHere = true;
     });
@@ -53,7 +52,14 @@ return function(sandbox) {
             wlxmlDocument.on('change', function() {
                 documentIsDirty = true;
             });
+            wlxmlDocument.on('contentSet', function() {
+                documentIsDirty = true;
+            });
+        },
+        changesCommited: function() {
+            return !documentEditedHere;
         },
+        commitChanges: commitDocument,
         getDocument: function() {
             return editor.getValue();
         }