diff --git a/src/js/codemirror/search-thread.js b/src/js/codemirror/search-thread.js index 29d4465d6..c3eda6de8 100644 --- a/src/js/codemirror/search-thread.js +++ b/src/js/codemirror/search-thread.js @@ -157,6 +157,10 @@ if ( }, { once: true }); }; + const needHaystack = function() { + return worker instanceof Object === false; + }; + const setHaystack = function(content) { init(); worker.postMessage({ what: 'setHaystack', content }); @@ -183,7 +187,7 @@ if ( }); }; - self.searchThread = { setHaystack, search, shutdown }; + self.searchThread = { needHaystack, setHaystack, search, shutdown }; } /******************************************************************************/ diff --git a/src/js/codemirror/search.js b/src/js/codemirror/search.js index cc91b742d..4c0f7e86c 100644 --- a/src/js/codemirror/search.js +++ b/src/js/codemirror/search.js @@ -286,7 +286,7 @@ } state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query)); cm.addOverlay(state.overlay); - if ( state.dirty ) { + if ( state.dirty || self.searchThread.needHaystack() ) { self.searchThread.setHaystack(cm.getValue()); state.dirty = false; }