diff --git a/core/src/components/menu/menu.tsx b/core/src/components/menu/menu.tsx
index 1dc46a41e0..db40853b88 100644
--- a/core/src/components/menu/menu.tsx
+++ b/core/src/components/menu/menu.tsx
@@ -289,6 +289,20 @@ export class Menu implements ComponentInterface, MenuI {
@Listen('ionSplitPaneVisible', { target: 'body' })
onSplitPaneChanged(ev: CustomEvent) {
+ const { target } = ev;
+ const closestSplitPane = this.el.closest('ion-split-pane');
+
+ /**
+ * Menu listens on the body for "ionSplitPaneVisible".
+ * However, this means the callback will run any time
+ * a SplitPane changes visibility. As a result, we only want
+ * Menu's visibility state to update if its parent SplitPane
+ * changes visibility.
+ */
+ if (target !== closestSplitPane) {
+ return;
+ }
+
this.isPaneVisible = ev.detail.isPane(this.el);
this.updateState();
}
diff --git a/core/src/components/split-pane/test/multiple/index.html b/core/src/components/split-pane/test/multiple/index.html
new file mode 100644
index 0000000000..cc2cb49092
--- /dev/null
+++ b/core/src/components/split-pane/test/multiple/index.html
@@ -0,0 +1,69 @@
+
+
+