Fix topmost element check with Shadow DOM

This commit is contained in:
varjolintu 2025-08-27 17:10:05 +03:00
parent 3e99239933
commit f24c235692

View file

@ -418,10 +418,11 @@ kpxcFields.isTopElement = function(elem, rect) {
// Check topmost element from three points inside the input
const verticalMiddle = rect.top + (rect.height / 2);
const rootNode = elem.getRootNode() ?? document;
if (matchesWithNodeName(elem, 'INPUT') && [
document.elementFromPoint(rect.left + (rect.width / 4), verticalMiddle), // First third
document.elementFromPoint(rect.left + (rect.width / 2), verticalMiddle), // Middle
document.elementFromPoint(rect.left + (rect.width / 1.33), verticalMiddle), // Last third
rootNode.elementFromPoint(rect.left + (rect.width / 4), verticalMiddle), // First third
rootNode.elementFromPoint(rect.left + (rect.width / 2), verticalMiddle), // Middle
rootNode.elementFromPoint(rect.left + (rect.width / 1.33), verticalMiddle), // Last third
].some((e) => e !== elem)) {
return false;
}