From 2561076c5abeee0a60f3a2a65a8ecb7832a6a62a Mon Sep 17 00:00:00 2001
From: Ian Harrigan <ianharrigan@hotmail.com>
Date: Thu, 11 Jan 2024 15:15:44 +0100
Subject: [PATCH] remove any screen events when menu is disposed

---
 haxe/ui/containers/menus/Menu.hx | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/haxe/ui/containers/menus/Menu.hx b/haxe/ui/containers/menus/Menu.hx
index 21e2ec104..e4a7af3bb 100644
--- a/haxe/ui/containers/menus/Menu.hx
+++ b/haxe/ui/containers/menus/Menu.hx
@@ -102,6 +102,10 @@ class MenuEvents extends haxe.ui.events.Events {
         unregisterEvent(UIEvent.SHOWN, onShown);
     }
 
+    public override function onDispose() {
+        removeScreenMouseDown();
+    }
+
     private var _over:Bool = false;
     private function onMouseOver(event:MouseEvent) {
         _over = true;
@@ -232,6 +236,10 @@ class MenuEvents extends haxe.ui.events.Events {
             return;
         }
 
+        if (currentSubMenu._isDisposed) { // sub menu could have already been disposed of
+            return;
+        }
+
         for (child in currentSubMenu.childComponents) {
             child.removeClass(":hover", true, true);
         }