diff --git a/editors/editoria/src/layout/EditoriaLayout.js b/editors/editoria/src/layout/EditoriaLayout.js
index fc5d0677602d43141b85f278d87715f46cf1d30f..c01a058061daf7f9e21b0113e33def786f2b6a49 100644
--- a/editors/editoria/src/layout/EditoriaLayout.js
+++ b/editors/editoria/src/layout/EditoriaLayout.js
@@ -127,7 +127,7 @@ const CommentTrackToolsContainer = styled.div`
   position: fixed;
   padding-top: 5px;
   right: 30px;
-  z-index: 2;
+  z-index: 1;
   background: white;
   padding-left: 5%;
 `;
diff --git a/wax-prosemirror-components/src/components/Overlay.js b/wax-prosemirror-components/src/components/Overlay.js
index 6d3cce46b8e6323f2d5b5c77c9a9229d668f922e..53e2a3f7732bc2597abecf1fd953c2d52af5ab48 100644
--- a/wax-prosemirror-components/src/components/Overlay.js
+++ b/wax-prosemirror-components/src/components/Overlay.js
@@ -1,10 +1,13 @@
-import React from "react";
-import styled from "styled-components";
+/* eslint-disable react/destructuring-assignment */
+/* eslint-disable react/jsx-props-no-spreading */
+import React from 'react';
+import styled from 'styled-components';
+
 const OverlayContainer = styled.div`
-  position: ${props => props.position.position};
   left: ${props => `${props.position.left}px`};
+  position: ${props => props.position.position};
   top: ${props => `${props.position.top}px`};
-  z-index: 999;
+  // z-index: 999;
 `;
 
 const Overlay = props => (
diff --git a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
index b5a7677026cad23470ef649483ed8d617120186d..bdbda7c2eff4e9d3e7e09e3a568553d1ab0153a2 100644
--- a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
+++ b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
@@ -107,6 +107,7 @@ const AcceptRejectAllControls = styled.div`
   right: 207px;
   transform-origin: 50% 50% 0px;
   width: 200px;
+  z-index: 9999;
 `;
 
 const AcceptRejectAllRow = styled.div`
@@ -168,38 +169,51 @@ const getComments = main => {
   return comments;
 };
 
-const renderTools = menuItems => {
-  const tools = [];
-  tools.push(
-    menuItems.map((menuItem, index) => {
-      return (
-        <MenuButton
-          iconName={menuItem.icon}
-          key={menuItem.name}
-          label={menuItem.label}
-        />
-      );
-    }),
-  );
-  return <>{tools}</>;
-};
-
 const TrackChangeOptionsComponent = ({ groups }) => {
   const [isShownTrack, setIsShownTrack] = useState(false);
 
   const menuItems = groups[0].items;
-  const { view } = useContext(WaxContext);
+  const { view, activeView, activeViewId } = useContext(WaxContext);
+  const { dispatch, state } = view;
 
   const inlineTracks = getInlineTracks(view.main).length;
   const blockTracks = getTrackBlockNodes(view.main).length;
   const comments = getComments(view.main).length;
 
+  const renderTools = () => {
+    const tools = [];
+    tools.push(
+      menuItems.map((menuItem, index) => {
+        const isActive = !!(
+          menuItem.active(state, activeViewId) &&
+          menuItem.select(state, activeViewId)
+        );
+
+        const isDisabled = !menuItem.select(state, activeViewId, activeView);
+        return (
+          <MenuButton
+            active={isActive || false}
+            disabled={isDisabled}
+            iconName={menuItem.icon}
+            key={menuItem.name}
+            label={menuItem.label}
+            onMouseDown={e => {
+              e.preventDefault();
+              menuItem.run(activeView.state, activeView.dispatch);
+            }}
+          />
+        );
+      }),
+    );
+    return <>{tools}</>;
+  };
+
   return (
     <Wrapper>
       <TotalSuggestions>
         {inlineTracks + blockTracks} SUGGESTIONS
       </TotalSuggestions>
-      <ToolsContainer>{renderTools(menuItems)}</ToolsContainer>
+      <ToolsContainer>{renderTools()}</ToolsContainer>
       <AcceptRejectAll
         onMouseEnter={() => setIsShownTrack(true)}
         onMouseLeave={() => setIsShownTrack(false)}
diff --git a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsTool.js b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsTool.js
index 162e688d1ed1cd5dcea26d1f9c08082266b584da..640597119d31a05387aca7be400334e8089b1830 100644
--- a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsTool.js
+++ b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsTool.js
@@ -27,7 +27,7 @@ const TrackChangeOptionsTool = ({ view = {}, item, groups }) => {
   const [isOpen, setIsOpen] = useState(false);
   const ref = useRef();
 
-  useOnClickOutside(ref, () => setIsOpen(false));
+  // useOnClickOutside(ref, () => setIsOpen(false));
 
   const MemorizedDropdown = useMemo(
     () => (
diff --git a/wax-prosemirror-components/src/ui/buttons/MenuButton.js b/wax-prosemirror-components/src/ui/buttons/MenuButton.js
index e08d2fc6bb1d0f8f689b2cf3132dc6e019ca89a9..7e5606dc0b04b90e9fca4193dc1fd524af306344 100644
--- a/wax-prosemirror-components/src/ui/buttons/MenuButton.js
+++ b/wax-prosemirror-components/src/ui/buttons/MenuButton.js
@@ -46,6 +46,7 @@ const Wrapper = styled.button.attrs(props => ({
   outline: none;
   padding: 2px;
   transition: all 0.1s ease-in;
+  user-select: none;
 
   > svg {
     transition: all 0.1s ease-in;
diff --git a/wax-prosemirror-services/src/OverlayService/OverlayComponent.js b/wax-prosemirror-services/src/OverlayService/OverlayComponent.js
index c79077b364115229706b8d4e325cfbcbcabe1547..5db172c90ea808145d40e48c10de2f86caea2d06 100644
--- a/wax-prosemirror-services/src/OverlayService/OverlayComponent.js
+++ b/wax-prosemirror-services/src/OverlayService/OverlayComponent.js
@@ -1,21 +1,22 @@
-import React, { useMemo } from "react";
-import usePosition from "./usePosition";
-import { Overlay } from "wax-prosemirror-components";
+/* eslint-disable react/jsx-props-no-spreading */
+import React, { useMemo } from 'react';
+import { Overlay } from 'wax-prosemirror-components';
+import usePosition from './usePosition';
 
 export default (Component, markType) => props => {
   const [position, setPosition, mark] = usePosition(markType);
   const component = useMemo(
     () => (
       <Component
-        setPosition={setPosition}
         mark={mark}
         position={position}
+        setPosition={setPosition}
         {...props}
       />
     ),
-    [JSON.stringify(mark), position]
+    [JSON.stringify(mark), position],
   );
-  const visible = position.left ? true : false;
+  const visible = !!position.left;
 
   return <Overlay position={position}>{visible && component}</Overlay>;
 };