From dea2b7d81ea6b9c1380015db953454fc3c39c451 Mon Sep 17 00:00:00 2001 From: Praveenkumar26-S Date: Wed, 11 Feb 2026 11:00:16 +0530 Subject: [PATCH] feat: add hover functionality for nested submenus in context menu --- frappe/public/js/frappe/ui/menu.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/frappe/public/js/frappe/ui/menu.js b/frappe/public/js/frappe/ui/menu.js index d918f2740b..5a306d5675 100644 --- a/frappe/public/js/frappe/ui/menu.js +++ b/frappe/public/js/frappe/ui/menu.js @@ -167,8 +167,23 @@ frappe.ui.menu = class ContextMenu { if (item.items) { let nested_menu = this.handle_nested_menu(item_wrapper, item); this.nested_menus.push(nested_menu); + me.handle_submenu_hover(item_wrapper); } } + handle_submenu_hover(item_wrapper) { + const me = this; + + $(item_wrapper).on("mouseenter", function (event) { + me.nested_menus.forEach((menu) => { + if (menu.parent.get(0) === this) { + me.current_menu = menu; + menu.show(event); + } else { + menu.hide(); + } + }); + }); + } handle_nested_menu(item_wrapper, item) { return frappe.ui.create_menu({ @@ -234,6 +249,11 @@ frappe.ui.menu = class ContextMenu { hide() { this.template.css("display", "none"); this.visible = false; + if (this.nested_menus && this.nested_menus.length) { + this.nested_menus.forEach((menu) => { + menu.hide(); + }); + } } mouseX(evt) { if (evt.pageX) {