diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0f5c305ec..ec1bdb969 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
### v1.11.17
+**v1.11.17.2** *(2015-11-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.2/builds/4chan-X-noupdate.crx "Chromium version")]
+- Merge v1.11.16.9: Bring back scrolling prevention when captcha is focused.
+
**v1.11.17.1** *(2015-11-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.1/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.1/builds/4chan-X-noupdate.crx "Chromium version")]
- Merge v1.11.16.8: Remove obsolete captcha bug workaround that may be causing scrolling to top.
diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx
index e0b4fd91d..ce09288ad 100644
Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ
diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js
index a15394c96..a56f315b3 100644
--- a/builds/4chan-X-beta.meta.js
+++ b/builds/4chan-X-beta.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
-// @version 1.11.17.1
+// @version 1.11.17.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js
index 422b62f11..8cc9a0cf4 100644
--- a/builds/4chan-X-beta.user.js
+++ b/builds/4chan-X-beta.user.js
@@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X beta
-// @version 1.11.17.1
+// @version 1.11.17.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -433,7 +433,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.11.17.1',
+ VERSION: '1.11.17.2',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -7115,7 +7115,15 @@
return $.queueTask(function() {
if (!QR.inBubble()) {
QR.hasFocus = d.activeElement && QR.nodes.el.contains(d.activeElement);
- return QR.nodes.el.classList.toggle('focus', QR.hasFocus);
+ QR.nodes.el.classList.toggle('focus', QR.hasFocus);
+ }
+ if (QR.captcha.isEnabled && QR.captcha === Captcha.v2 && !QR.captcha.noscript) {
+ if (QR.inCaptcha()) {
+ QR.scrollY = window.scrollY;
+ return $.on(d, 'scroll', QR.scrollLock);
+ } else {
+ return $.off(d, 'scroll', QR.scrollLock);
+ }
}
});
},
@@ -7126,6 +7134,17 @@
return getComputedStyle(el).visibility !== 'hidden' && el.getBoundingClientRect().bottom > 0;
});
},
+ inCaptcha: function() {
+ var ref;
+ return (((ref = d.activeElement) != null ? ref.nodeName : void 0) === 'IFRAME' && QR.nodes.el.contains(d.activeElement)) || (QR.hasFocus && QR.inBubble());
+ },
+ scrollLock: function() {
+ if (QR.inCaptcha()) {
+ return window.scroll(window.scrollX, QR.scrollY);
+ } else {
+ return $.off(d, 'scroll', QR.scrollLock);
+ }
+ },
hide: function() {
d.activeElement.blur();
$.addClass(QR.nodes.el, 'autohide');
@@ -8758,7 +8777,7 @@
}
},
watchBubbles: function(mutations) {
- var k, len1, mutation, node, results;
+ var k, len1, mutation, node, overlay, results;
results = [];
for (k = 0, len1 = mutations.length; k < len1; k++) {
mutation = mutations[k];
@@ -8769,9 +8788,17 @@
for (q = 0, len2 = ref.length; q < len2; q++) {
node = ref[q];
if ($('iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node)) {
- results1.push(new MutationObserver(this.fixBubble.bind(this, node)).observe(node, {
+ new MutationObserver(this.fixBubble.bind(this, node)).observe(node, {
attributes: true
- }));
+ });
+ if (overlay = $('div[style*="position: fixed;"]', node)) {
+ results1.push($.on(overlay, 'click', function() {
+ var ref1;
+ return (ref1 = $('#qr iframe')) != null ? ref1.blur() : void 0;
+ }));
+ } else {
+ results1.push(void 0);
+ }
} else {
results1.push(void 0);
}
@@ -19803,18 +19830,8 @@
"#qr .captcha-root {\n" +
" position: relative;\n" +
"}\n" +
-"#qr .captcha-container > div {\n" +
+"#qr .captcha-container > div > div {\n" +
" margin: auto;\n" +
-" width: 304px;\n" +
-"}\n" +
-"/* scrollable with scroll bar hidden; prevents scroll on space press */\n" +
-":root.blink #qr .captcha-container > div {\n" +
-" overflow: hidden;\n" +
-"}\n" +
-":root.blink #qr .captcha-container > div > div:first-of-type {\n" +
-" overflow-y: scroll;\n" +
-" overflow-x: hidden;\n" +
-" padding-right: 15px;\n" +
"}\n" +
"#qr .captcha-counter {\n" +
" display: block;\n" +
diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx
index e018b5c46..a81120cfe 100644
Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ
diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js
index 7deb7cc59..f6c107356 100644
--- a/builds/4chan-X-noupdate.user.js
+++ b/builds/4chan-X-noupdate.user.js
@@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
-// @version 1.11.17.1
+// @version 1.11.17.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -433,7 +433,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.11.17.1',
+ VERSION: '1.11.17.2',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -7115,7 +7115,15 @@
return $.queueTask(function() {
if (!QR.inBubble()) {
QR.hasFocus = d.activeElement && QR.nodes.el.contains(d.activeElement);
- return QR.nodes.el.classList.toggle('focus', QR.hasFocus);
+ QR.nodes.el.classList.toggle('focus', QR.hasFocus);
+ }
+ if (QR.captcha.isEnabled && QR.captcha === Captcha.v2 && !QR.captcha.noscript) {
+ if (QR.inCaptcha()) {
+ QR.scrollY = window.scrollY;
+ return $.on(d, 'scroll', QR.scrollLock);
+ } else {
+ return $.off(d, 'scroll', QR.scrollLock);
+ }
}
});
},
@@ -7126,6 +7134,17 @@
return getComputedStyle(el).visibility !== 'hidden' && el.getBoundingClientRect().bottom > 0;
});
},
+ inCaptcha: function() {
+ var ref;
+ return (((ref = d.activeElement) != null ? ref.nodeName : void 0) === 'IFRAME' && QR.nodes.el.contains(d.activeElement)) || (QR.hasFocus && QR.inBubble());
+ },
+ scrollLock: function() {
+ if (QR.inCaptcha()) {
+ return window.scroll(window.scrollX, QR.scrollY);
+ } else {
+ return $.off(d, 'scroll', QR.scrollLock);
+ }
+ },
hide: function() {
d.activeElement.blur();
$.addClass(QR.nodes.el, 'autohide');
@@ -8758,7 +8777,7 @@
}
},
watchBubbles: function(mutations) {
- var k, len1, mutation, node, results;
+ var k, len1, mutation, node, overlay, results;
results = [];
for (k = 0, len1 = mutations.length; k < len1; k++) {
mutation = mutations[k];
@@ -8769,9 +8788,17 @@
for (q = 0, len2 = ref.length; q < len2; q++) {
node = ref[q];
if ($('iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node)) {
- results1.push(new MutationObserver(this.fixBubble.bind(this, node)).observe(node, {
+ new MutationObserver(this.fixBubble.bind(this, node)).observe(node, {
attributes: true
- }));
+ });
+ if (overlay = $('div[style*="position: fixed;"]', node)) {
+ results1.push($.on(overlay, 'click', function() {
+ var ref1;
+ return (ref1 = $('#qr iframe')) != null ? ref1.blur() : void 0;
+ }));
+ } else {
+ results1.push(void 0);
+ }
} else {
results1.push(void 0);
}
@@ -19803,18 +19830,8 @@
"#qr .captcha-root {\n" +
" position: relative;\n" +
"}\n" +
-"#qr .captcha-container > div {\n" +
+"#qr .captcha-container > div > div {\n" +
" margin: auto;\n" +
-" width: 304px;\n" +
-"}\n" +
-"/* scrollable with scroll bar hidden; prevents scroll on space press */\n" +
-":root.blink #qr .captcha-container > div {\n" +
-" overflow: hidden;\n" +
-"}\n" +
-":root.blink #qr .captcha-container > div > div:first-of-type {\n" +
-" overflow-y: scroll;\n" +
-" overflow-x: hidden;\n" +
-" padding-right: 15px;\n" +
"}\n" +
"#qr .captcha-counter {\n" +
" display: block;\n" +
diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx
index 4abb035bf..e5a0b6c21 100644
Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ
diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js
index abcc0b9df..fc73983f3 100644
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.11.17.1
+// @version 1.11.17.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index 611b8b873..f069f53fc 100644
--- a/builds/4chan-X.user.js
+++ b/builds/4chan-X.user.js
@@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
-// @version 1.11.17.1
+// @version 1.11.17.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -433,7 +433,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.11.17.1',
+ VERSION: '1.11.17.2',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -7115,7 +7115,15 @@
return $.queueTask(function() {
if (!QR.inBubble()) {
QR.hasFocus = d.activeElement && QR.nodes.el.contains(d.activeElement);
- return QR.nodes.el.classList.toggle('focus', QR.hasFocus);
+ QR.nodes.el.classList.toggle('focus', QR.hasFocus);
+ }
+ if (QR.captcha.isEnabled && QR.captcha === Captcha.v2 && !QR.captcha.noscript) {
+ if (QR.inCaptcha()) {
+ QR.scrollY = window.scrollY;
+ return $.on(d, 'scroll', QR.scrollLock);
+ } else {
+ return $.off(d, 'scroll', QR.scrollLock);
+ }
}
});
},
@@ -7126,6 +7134,17 @@
return getComputedStyle(el).visibility !== 'hidden' && el.getBoundingClientRect().bottom > 0;
});
},
+ inCaptcha: function() {
+ var ref;
+ return (((ref = d.activeElement) != null ? ref.nodeName : void 0) === 'IFRAME' && QR.nodes.el.contains(d.activeElement)) || (QR.hasFocus && QR.inBubble());
+ },
+ scrollLock: function() {
+ if (QR.inCaptcha()) {
+ return window.scroll(window.scrollX, QR.scrollY);
+ } else {
+ return $.off(d, 'scroll', QR.scrollLock);
+ }
+ },
hide: function() {
d.activeElement.blur();
$.addClass(QR.nodes.el, 'autohide');
@@ -8758,7 +8777,7 @@
}
},
watchBubbles: function(mutations) {
- var k, len1, mutation, node, results;
+ var k, len1, mutation, node, overlay, results;
results = [];
for (k = 0, len1 = mutations.length; k < len1; k++) {
mutation = mutations[k];
@@ -8769,9 +8788,17 @@
for (q = 0, len2 = ref.length; q < len2; q++) {
node = ref[q];
if ($('iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node)) {
- results1.push(new MutationObserver(this.fixBubble.bind(this, node)).observe(node, {
+ new MutationObserver(this.fixBubble.bind(this, node)).observe(node, {
attributes: true
- }));
+ });
+ if (overlay = $('div[style*="position: fixed;"]', node)) {
+ results1.push($.on(overlay, 'click', function() {
+ var ref1;
+ return (ref1 = $('#qr iframe')) != null ? ref1.blur() : void 0;
+ }));
+ } else {
+ results1.push(void 0);
+ }
} else {
results1.push(void 0);
}
@@ -19803,18 +19830,8 @@
"#qr .captcha-root {\n" +
" position: relative;\n" +
"}\n" +
-"#qr .captcha-container > div {\n" +
+"#qr .captcha-container > div > div {\n" +
" margin: auto;\n" +
-" width: 304px;\n" +
-"}\n" +
-"/* scrollable with scroll bar hidden; prevents scroll on space press */\n" +
-":root.blink #qr .captcha-container > div {\n" +
-" overflow: hidden;\n" +
-"}\n" +
-":root.blink #qr .captcha-container > div > div:first-of-type {\n" +
-" overflow-y: scroll;\n" +
-" overflow-x: hidden;\n" +
-" padding-right: 15px;\n" +
"}\n" +
"#qr .captcha-counter {\n" +
" display: block;\n" +
diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip
index 79ada2039..ced1415f2 100644
Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ
diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml
index f4c452d09..48a3c6f68 100644
--- a/builds/updates-beta.xml
+++ b/builds/updates-beta.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/builds/updates.xml b/builds/updates.xml
index 968c76a33..f1a1ba6c5 100644
--- a/builds/updates.xml
+++ b/builds/updates.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/version.json b/version.json
index 7a5cc7361..fa176f3cd 100644
--- a/version.json
+++ b/version.json
@@ -1,4 +1,4 @@
{
- "version": "1.11.17.1",
- "date": "2015-11-16T06:41:09.771Z"
+ "version": "1.11.17.2",
+ "date": "2015-11-16T07:50:49.812Z"
}