diff --git a/wax-prosemirror-components/src/components/Button.js b/wax-prosemirror-components/src/components/Button.js
index 4e950bc854e3f6a43a1b837f90790e0205878f5e..50bd49e97b83a307669f4eb2e0c299968eae2915 100644
--- a/wax-prosemirror-components/src/components/Button.js
+++ b/wax-prosemirror-components/src/components/Button.js
@@ -1,24 +1,26 @@
-import React, { useContext } from "react";
-import styled from "styled-components";
-import { ButtonStyles } from "wax-prosemirror-themes";
-import { WaxContext } from "wax-prosemirror-core";
+import React, { useContext } from 'react';
+import styled from 'styled-components';
+import { ButtonStyles } from 'wax-prosemirror-themes';
+import { WaxContext } from 'wax-prosemirror-core';
 
 const ButtonStyled = styled.button`
   ${ButtonStyles};
   opacity: ${props => (props.select ? 1 : 0.4)};
-  pointer-events: ${props => (props.select ? "default" : "none")};
-  color: ${props => (props.isActive ? "white" : props.theme.colorButton)};
+  pointer-events: ${props => (props.select ? 'default' : 'none')};
+  color: ${props => (props.isActive ? 'white' : props.theme.colorButton)};
   background-color: ${props =>
-    props.isActive ? props.theme.colorPrimary : "transparent"};
+    props.isActive ? props.theme.colorPrimary : 'transparent'};
   &:hover {
     background-color: ${props =>
-      props.isActive ? props.theme.colorPrimary : "transparent"};
+      props.isActive ? props.theme.colorPrimary : 'transparent'};
   }
 `;
 
 const Button = ({ view = {}, item }) => {
   if (item.onlyOnMain) {
-    const { view: { main } } = useContext(WaxContext);
+    const {
+      view: { main },
+    } = useContext(WaxContext);
     view = main;
   }
 
diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js
index 376644b2fdec4867b3703e89f276dea93a1b5388..acd9b3974b2a59c649752ab8fc9e85c415ff21c2 100644
--- a/wax-prosemirror-services/src/NoteService/Editor.js
+++ b/wax-prosemirror-services/src/NoteService/Editor.js
@@ -15,8 +15,9 @@ export default ({ node, view }) => {
   const editorRef = useRef();
   const context = useContext(WaxContext);
   const noteId = node.attrs.id;
+  let noteView;
   useEffect(() => {
-    const noteView = new EditorView(
+    noteView = new EditorView(
       { mount: editorRef.current },
       {
         state: EditorState.create({
@@ -24,38 +25,7 @@ export default ({ node, view }) => {
           plugins: [keymap(createKeyBindings()), ...context.app.getPlugins()],
         }),
         // This is the magic part
-        dispatchTransaction: tr => {
-          let { state, transactions } = noteView.state.applyTransaction(tr);
-          noteView.updateState(state);
-
-          const allNotes = DocumentHelpers.findChildrenByType(
-            view.state.doc,
-            view.state.schema.nodes.footnote,
-            true,
-          );
-
-          const noteFound = filter(allNotes, {
-            node: { attrs: { id: noteId } },
-          });
-
-          // TODO Remove timeout and use state to check if noteView has changed
-          setTimeout(() => {
-            context.updateView({}, noteId);
-          }, 20);
-
-          if (!tr.getMeta('fromOutside')) {
-            let outerTr = view.state.tr,
-              offsetMap = StepMap.offset(noteFound[0].pos + 1);
-            for (let i = 0; i < transactions.length; i++) {
-              let steps = transactions[i].steps;
-              for (let j = 0; j < steps.length; j++)
-                outerTr.step(steps[j].map(offsetMap));
-            }
-
-            if (outerTr.docChanged)
-              view.dispatch(outerTr.setMeta('outsideView', 'notes'));
-          }
-        },
+        dispatchTransaction,
         handleDOMEvents: {
           mousedown: () => {
             context.updateView({}, noteId);
@@ -84,6 +54,39 @@ export default ({ node, view }) => {
     }
   }, []);
 
+  const dispatchTransaction = tr => {
+    const { state, transactions } = noteView.state.applyTransaction(tr);
+    noteView.updateState(state);
+
+    const allNotes = DocumentHelpers.findChildrenByType(
+      view.state.doc,
+      view.state.schema.nodes.footnote,
+      true,
+    );
+
+    const noteFound = filter(allNotes, {
+      node: { attrs: { id: noteId } },
+    });
+
+    // TODO Remove timeout and use state to check if noteView has changed
+    setTimeout(() => {
+      context.updateView({}, noteId);
+    }, 20);
+
+    if (!tr.getMeta('fromOutside')) {
+      let outerTr = view.state.tr,
+        offsetMap = StepMap.offset(noteFound[0].pos + 1);
+      for (let i = 0; i < transactions.length; i++) {
+        let steps = transactions[i].steps;
+        for (let j = 0; j < steps.length; j++)
+          outerTr.step(steps[j].map(offsetMap));
+      }
+
+      if (outerTr.docChanged)
+        view.dispatch(outerTr.setMeta('outsideView', 'notes'));
+    }
+  };
+
   const createKeyBindings = () => {
     const keys = getKeys();
     Object.keys(baseKeymap).forEach(key => {
diff --git a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
index 069ece3a1d1b319f47afcb4bffe7ececf495bb91..ecde18b5b01541fa4fcd0c1c9a81f31a885ed43b 100644
--- a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
@@ -67,6 +67,14 @@ class AcceptTrackChange extends Tools {
     };
   }
 
+  select = state => {
+    const {
+      selection: { from, to },
+    } = state;
+    if (from === to) return false;
+    return true;
+  };
+
   get active() {
     return state => {};
   }
diff --git a/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js
index 84f8775d2f6c607acbad42609646a131a7892aba..0d89d3c74ef31aa85cb491fa6d6176091b3a5500 100644
--- a/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/RejectTrackChangeService/RejectTrackChange.js
@@ -88,6 +88,14 @@ class RejectTrackChange extends Tools {
     };
   }
 
+  select = state => {
+    const {
+      selection: { from, to },
+    } = state;
+    if (from === to) return false;
+    return true;
+  };
+
   get active() {
     return state => {};
   }