Răsfoiți Sursa

Merge pull request #2800 from overleaf/jpa-force-flush-onblur

[frontend] EditorManager: flush the documents as the editor looses focus

GitOrigin-RevId: 9157eba091e21c80202448b6c28c22dddd8cb687
Miguel Serrano 6 ani în urmă
părinte
comite
e1cc614da7
1 a modificat fișierele cu 9 adăugiri și 0 ștergeri
  1. 9 0
      services/web/frontend/js/ide/editor/EditorManager.js

+ 9 - 0
services/web/frontend/js/ide/editor/EditorManager.js

@@ -75,6 +75,15 @@ define([
         this.$scope.$on('flush-changes', () => {
         this.$scope.$on('flush-changes', () => {
           return Document.flushAll()
           return Document.flushAll()
         })
         })
+        window.addEventListener('blur', () => {
+          // The browser may put the tab into sleep as it looses focus.
+          // Flushing the documents should help with keeping the documents in
+          //  sync: we can use any new version of the doc that the server may
+          //  present us. There should be no need to insert local changes into
+          //  the doc history as the user comes back.
+          sl_console.log('[EditorManager] forcing flush onblur')
+          Document.flushAll()
+        })
 
 
         this.$scope.$watch('editor.wantTrackChanges', value => {
         this.$scope.$watch('editor.wantTrackChanges', value => {
           if (value == null) {
           if (value == null) {