diff --git a/src/webui/www/private/scripts/contextmenu.js b/src/webui/www/private/scripts/contextmenu.js index 339dc6466..ce6c3756e 100644 --- a/src/webui/www/private/scripts/contextmenu.js +++ b/src/webui/www/private/scripts/contextmenu.js @@ -211,6 +211,18 @@ window.qBittorrent.ContextMenu ??= (() => { // hide on body click document.body.addEventListener("click", (event) => { + const parentNode = event.target.parentNode; + + // make sure the click was on a context menu item + if ((parentNode !== null) && (parentNode.tagName.toLowerCase() === "li")) { + const grandParentNode = parentNode.parentNode; + if ((grandParentNode !== null) && (grandParentNode.classList.contains("contextMenu"))) { + const submenuNodes = parentNode.getElementsByTagName("ul"); + if (submenuNodes.length > 0) + return; + } + } + this.hide(); this.options.element = null; });