diff --git a/src/js/scriptlets/epicker.js b/src/js/scriptlets/epicker.js index bf0303308..879b83eae 100644 --- a/src/js/scriptlets/epicker.js +++ b/src/js/scriptlets/epicker.js @@ -524,6 +524,22 @@ const filtersFrom = function(x, y) { x = undefined; } + // https://github.com/gorhill/uBlock/issues/1545 + // Network filter candidates from all other elements found at [x,y]. + // https://www.reddit.com/r/uBlockOrigin/comments/qmjk36/ + // Extract network candidates first. + if ( typeof x === 'number' ) { + const magicAttr = `${vAPI.sessionId}-clickblind`; + pickerRoot.setAttribute(magicAttr, ''); + const elems = document.elementsFromPoint(x, y); + pickerRoot.removeAttribute(magicAttr); + for ( const elem of elems ) { + netFilterFromElement(elem); + } + } else if ( first !== null ) { + netFilterFromElement(first); + } + // Cosmetic filter candidates from ancestors. // https://github.com/gorhill/uBlock/issues/2519 // https://github.com/uBlockOrigin/uBlock-issues/issues/17 @@ -543,18 +559,6 @@ const filtersFrom = function(x, y) { } } - // https://github.com/gorhill/uBlock/issues/1545 - // Network filter candidates from all other elements found at [x,y]. - if ( typeof x === 'number' ) { - const magicAttr = `${vAPI.sessionId}-clickblind`; - pickerRoot.setAttribute(magicAttr, ''); - const elems = document.elementsFromPoint(x, y); - pickerRoot.removeAttribute(magicAttr); - for ( const elem of elems ) { - netFilterFromElement(elem); - } - } - return netFilterCandidates.length + cosmeticFilterCandidates.length; };