diff --git a/frontends/etiquette_flask/static/js/cards.js b/frontends/etiquette_flask/static/js/cards.js index 2f290c2..9994e60 100644 --- a/frontends/etiquette_flask/static/js/cards.js +++ b/frontends/etiquette_flask/static/js/cards.js @@ -250,7 +250,8 @@ function create(photo, view) photo_card.appendChild(toolbutton); const photo_card_tools = document.createElement("div"); - photo_card_tools.className = "photo_card_tools"; + photo_card_tools.classList.add("photo_card_tools"); + photo_card_tools.classList.add("contextmenu"); photo_card_tools.onclick = "event.stopPropagation(); return;"; photo_card.appendChild(photo_card_tools); diff --git a/frontends/etiquette_flask/static/js/contextmenus.js b/frontends/etiquette_flask/static/js/contextmenus.js index 74dd48e..a7612f9 100644 --- a/frontends/etiquette_flask/static/js/contextmenus.js +++ b/frontends/etiquette_flask/static/js/contextmenus.js @@ -1,5 +1,17 @@ const contextmenus = {}; +contextmenus.background_click = +function background_click(event) +{ + const contextmenu = event.target.closest(".contextmenu"); + if (! contextmenu) + { + contextmenus.hide_open_menus(); + return; + } + event.stopPropagation(); +} + contextmenus.hide_open_menus = function hide_open_menus() { @@ -32,6 +44,6 @@ function show_menu(event, menu) function on_pageload() { - document.body.addEventListener("click", contextmenus.hide_open_menus); + document.body.addEventListener("click", contextmenus.background_click); } document.addEventListener("DOMContentLoaded", on_pageload);