Revert "Remove scroll lock while focus is on captcha."
This reverts commit 46fd6744da2d4e8e3a2e3916ad6fd4483edc5ddf.
This commit is contained in:
parent
dd8b3fc0e9
commit
6e56b085cd
@ -241,6 +241,9 @@ Captcha.v2 =
|
||||
if $ 'iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node
|
||||
new MutationObserver(@fixBubble.bind(@, node)).observe node,
|
||||
attributes: true
|
||||
# Prevent Recaptcha from keeping focus when popup dismissed.
|
||||
if overlay = $ 'div[style*="position: fixed;"]', node
|
||||
$.on overlay, 'click', -> $('#qr iframe')?.blur()
|
||||
|
||||
fixBubble: (node) ->
|
||||
{bottom, right, width} = node.getBoundingClientRect()
|
||||
|
||||
@ -153,12 +153,28 @@ QR =
|
||||
unless QR.inBubble()
|
||||
QR.hasFocus = d.activeElement and QR.nodes.el.contains(d.activeElement)
|
||||
QR.nodes.el.classList.toggle 'focus', QR.hasFocus
|
||||
# XXX Stop unwanted scrolling due to captcha.
|
||||
if QR.captcha.isEnabled and QR.captcha is Captcha.v2 and !QR.captcha.noscript
|
||||
if QR.inCaptcha()
|
||||
QR.scrollY = window.scrollY
|
||||
$.on d, 'scroll', QR.scrollLock
|
||||
else
|
||||
$.off d, 'scroll', QR.scrollLock
|
||||
|
||||
inBubble: ->
|
||||
bubbles = $$ 'iframe[src^="https://www.google.com/recaptcha/api2/frame"]'
|
||||
d.activeElement in bubbles or bubbles.some (el) ->
|
||||
getComputedStyle(el).visibility isnt 'hidden' and el.getBoundingClientRect().bottom > 0
|
||||
|
||||
inCaptcha: ->
|
||||
(d.activeElement?.nodeName is 'IFRAME' and QR.nodes.el.contains(d.activeElement)) or (QR.hasFocus and QR.inBubble())
|
||||
|
||||
scrollLock: ->
|
||||
if QR.inCaptcha()
|
||||
window.scroll window.scrollX, QR.scrollY
|
||||
else
|
||||
$.off d, 'scroll', QR.scrollLock
|
||||
|
||||
hide: ->
|
||||
d.activeElement.blur()
|
||||
$.addClass QR.nodes.el, 'autohide'
|
||||
|
||||
@ -1331,19 +1331,9 @@ input.field.tripped:not(:hover):not(:focus) {
|
||||
#qr .captcha-root {
|
||||
position: relative;
|
||||
}
|
||||
#qr .captcha-container > div {
|
||||
#qr .captcha-container > div > div {
|
||||
margin: auto;
|
||||
}
|
||||
/* scrollable with scroll bar hidden; prevents scroll on space press */
|
||||
:root.blink #qr .captcha-container > div {
|
||||
width: 304px;
|
||||
overflow: hidden;
|
||||
}
|
||||
:root.blink #qr .captcha-container > div > div:first-of-type {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
padding-right: 15px;
|
||||
}
|
||||
#qr .captcha-counter {
|
||||
display: block;
|
||||
width: 100%;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user