Fix dialog modal close on background click

Does no longer trigger when you click in the scroll bar.
This commit is contained in:
Tetrakern 2024-10-18 19:18:21 +02:00
parent 44362b1172
commit 93d279e053
5 changed files with 27 additions and 11 deletions

2
js/admin.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

10
js/complete.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -371,7 +371,16 @@ _$$('.fictioneer-dialog button[formmethod="dialog"][value="cancel"]').forEach(el
// Close dialog on click outside
_$$('.fictioneer-dialog').forEach(element => {
element.addEventListener('mousedown', event => {
event.target.tagName.toLowerCase() === 'dialog' && event.target.close();
if (event.target === event.currentTarget) {
const rect = element.getBoundingClientRect();
const outside = event.clientX < rect.left || event.clientX > rect.right ||
event.clientY < rect.top || event.clientY > rect.bottom;
if (outside) {
event.preventDefault();
event.target.close();
}
}
});
});

View File

@ -1607,9 +1607,15 @@ _$$('[data-click-action*="close-dialog-modal"], button[formmethod="dialog"][valu
// Close dialog modal on click outside
_$$('dialog').forEach(element => {
element.addEventListener('mousedown', event => {
if (event.target.tagName.toLowerCase() === 'dialog') {
event.preventDefault();
event.target.close();
if (event.target === event.currentTarget) {
const rect = element.getBoundingClientRect();
const outside = event.clientX < rect.left || event.clientX > rect.right ||
event.clientY < rect.top || event.clientY > rect.bottom;
if (outside) {
event.preventDefault();
event.target.close();
}
}
});
});