[gnome-notes] Replace deprecated DOMSubtreeModified event listener



commit 98e240b7666615d35c1a7ca7f87a5b36013b61fc
Author: Kévin Commaille <zecakeh pm me>
Date:   Mon Mar 1 12:08:37 2021 +0100

    Replace deprecated DOMSubtreeModified event listener
    
    Use MutationObserver instead
    
    Remove paste event listener because it causes a duplicate ContentsUpdate message

 data/bijiben.js | 29 +++++++----------------------
 1 file changed, 7 insertions(+), 22 deletions(-)
---
diff --git a/data/bijiben.js b/data/bijiben.js
index b71bceb..6d90439 100644
--- a/data/bijiben.js
+++ b/data/bijiben.js
@@ -1,8 +1,8 @@
-var domModifiedTimerID = -1;
-document.addEventListener("DOMSubtreeModified", function () {
-    if (domModifiedTimerID == -1) {
-        domModifiedTimerID = setTimeout(function () {
-            domModifiedTimerID = -1;
+var mutationTimerID = -1;
+const mutationObserver = new MutationObserver(function() {
+    if (mutationTimerID == -1) {
+        mutationTimerID = setTimeout(function () {
+            mutationTimerID = -1;
             doc = document.documentElement;
             window.webkit.messageHandlers.bijiben.postMessage({
                 messageName: 'ContentsUpdate',
@@ -11,7 +11,8 @@ document.addEventListener("DOMSubtreeModified", function () {
             });
         }, 0);
     }
-}, false);
+});
+mutationObserver.observe(document, { childList: true, characterData: true, subtree: true });
 
 function rangeHasText(range) {
     if (range.startContainer.nodeType == Node.TEXT_NODE)
@@ -74,19 +75,3 @@ document.addEventListener('selectionchange', function () {
         }, 0);
     }
 }, false);
-
-var pasteTimerID = -1;
-document.addEventListener("paste", function () {
-    if (pasteTimerID == -1) {
-        pasteTimerID = setTimeout(function () {
-            pasteTimerID = -1;
-            doc = document.documentElement;
-            window.webkit.messageHandlers.bijiben.postMessage({
-                messageName: 'ContentsUpdate',
-                outerHTML: doc.outerHTML,
-                innerText: doc.innerText
-            });
-        }, 0);
-    }
-}, false);
-


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]