fix sticky context menu when multiple spline editors

This commit is contained in:
kijai 2024-10-29 10:30:27 +02:00
parent f6ba944afc
commit d9191b4c1d

View File

@ -121,6 +121,7 @@ app.registerExtension({
// context menu // context menu
this.contextMenu = document.createElement("div"); this.contextMenu = document.createElement("div");
this.contextMenu.className = 'spline-editor-context-menu';
this.contextMenu.id = "context-menu"; this.contextMenu.id = "context-menu";
this.contextMenu.style.display = "none"; this.contextMenu.style.display = "none";
this.contextMenu.style.position = "absolute"; this.contextMenu.style.position = "absolute";
@ -678,12 +679,13 @@ this.heightWidget.callback = () => {
self = this; self = this;
document.addEventListener('contextmenu', function (e) { document.addEventListener('contextmenu', function (e) {
e.preventDefault(); e.preventDefault();
}); });
document.addEventListener('click', function (e) { document.addEventListener('click', function (e) {
if (!self.node.contextMenu.contains(e.target)) { document.querySelectorAll('.spline-editor-context-menu').forEach(menu => {
self.node.contextMenu.style.display = 'none'; menu.style.display = 'none';
} });
}); });
this.node.menuItems.forEach((menuItem, index) => { this.node.menuItems.forEach((menuItem, index) => {