diff --git a/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx b/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx
index 0845e2e964b920c3a7cc299fb803978c724d04bc..7081445c9d06679eda43f73ee570b1ae6b016bf4 100644
--- a/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx
+++ b/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx
@@ -115,10 +115,12 @@ export default class WithPopoverMenu extends PureComponent<
     onChangeFocus: null,
     menuItems: [],
     isFocused: false,
-    shouldFocus: (event: any, container: ShouldFocusContainer) =>
-      container?.contains(event.target) ||
-      event.target.id === 'menu-item' ||
-      event.target.parentNode?.id === 'menu-item',
+    shouldFocus: (event: any, container: ShouldFocusContainer) => {
+      if (container?.contains(event.target)) return true;
+      if (event.target.id === 'menu-item') return true;
+      if (event.target.parentNode?.id === 'menu-item') return true;
+      return false;
+    },
     style: null,
   };
 
@@ -156,6 +158,9 @@ export default class WithPopoverMenu extends PureComponent<
     if (!this.props.editMode) {
       return;
     }
+
+    event.stopPropagation();
+
     const {
       onChangeFocus,
       shouldFocus: shouldFocusFunc,