Merge branch 'v3'
Conflicts: CHANGELOG.md LICENSE builds/4chan-X.js builds/4chan-X.meta.js builds/appchan-x.user.js builds/crx/manifest.json builds/crx/script.js latest.js package.json
This commit is contained in:
commit
a86b1da74f
15
CHANGELOG.md
15
CHANGELOG.md
@ -1,3 +1,18 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
### v1.2.12
|
||||||
|
*2013-05-27*
|
||||||
|
|
||||||
|
**MayhemYDG**:
|
||||||
|
- Fix `Jump to Next Reply` keybind not accounting for posts after unread line
|
||||||
|
|
||||||
|
**seaweedchan**:
|
||||||
|
- Added `.hasInline` (if replyContainer contains .inline) for userstyle/script maintainers
|
||||||
|
|
||||||
|
### v1.2.11
|
||||||
|
*2013-05-27*
|
||||||
|
|
||||||
|
>>>>>>> v3
|
||||||
**MayhemYDG**:
|
**MayhemYDG**:
|
||||||
- Tiny fixes
|
- Tiny fixes
|
||||||
- Add page count to thread stats
|
- Add page count to thread stats
|
||||||
|
|||||||
@ -3747,18 +3747,22 @@
|
|||||||
return Polyfill.visibility();
|
return Polyfill.visibility();
|
||||||
},
|
},
|
||||||
visibility: function() {
|
visibility: function() {
|
||||||
var event, prefix, property;
|
if (!('webkitHidden' in document)) {
|
||||||
|
|
||||||
if ('visibilityState' in document || !(prefix = ('webkitVisibilityState' in document ? 'webkit' : 'mozVisibilityState' in document ? 'moz' : void 0))) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
property = prefix + 'VisibilityState';
|
Object.defineProperties(HTMLDocument.prototype, {
|
||||||
event = prefix + 'visibilitychange';
|
visibilityState: {
|
||||||
d.visibilityState = d[property];
|
get: function() {
|
||||||
d.hidden = d.visibilityState === 'hidden';
|
return this.webkitVisibilityState;
|
||||||
return $.on(d, event, function() {
|
}
|
||||||
d.visibilityState = d[property];
|
},
|
||||||
d.hidden = d.visibilityState === 'hidden';
|
hidden: {
|
||||||
|
get: function() {
|
||||||
|
return this.webkitHidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return $.on(d, 'webkitvisibilitychange', function() {
|
||||||
return $.event('visibilitychange');
|
return $.event('visibilitychange');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -12902,7 +12906,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
hl: function(delta, thread) {
|
hl: function(delta, thread) {
|
||||||
var headRect, next, postEl, rect, replies, reply, root, topMargin, _i, _len;
|
var axe, headRect, next, postEl, rect, replies, reply, root, topMargin, _i, _len;
|
||||||
|
|
||||||
if (Conf['Fixed Header'] && Conf['Bottom header']) {
|
if (Conf['Fixed Header'] && Conf['Bottom header']) {
|
||||||
topMargin = 0;
|
topMargin = 0;
|
||||||
@ -12915,7 +12919,8 @@
|
|||||||
rect = postEl.getBoundingClientRect();
|
rect = postEl.getBoundingClientRect();
|
||||||
if (rect.bottom >= topMargin && rect.top <= doc.clientHeight) {
|
if (rect.bottom >= topMargin && rect.top <= doc.clientHeight) {
|
||||||
root = postEl.parentNode;
|
root = postEl.parentNode;
|
||||||
next = $.x('child::div[contains(@class,"post reply")]', delta === +1 ? root.nextElementSibling : root.previousElementSibling);
|
axe = delta === +1 ? 'following' : 'preceding';
|
||||||
|
next = $.x("" + axe + "-sibling::div[contains(@class,'replyContainer')][1]/child::div[contains(@class,'reply')]", root);
|
||||||
if (!next) {
|
if (!next) {
|
||||||
this.focus(postEl);
|
this.focus(postEl);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -3743,18 +3743,22 @@
|
|||||||
return Polyfill.visibility();
|
return Polyfill.visibility();
|
||||||
},
|
},
|
||||||
visibility: function() {
|
visibility: function() {
|
||||||
var event, prefix, property;
|
if (!('webkitHidden' in document)) {
|
||||||
|
|
||||||
if ('visibilityState' in document || !(prefix = ('webkitVisibilityState' in document ? 'webkit' : 'mozVisibilityState' in document ? 'moz' : void 0))) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
property = prefix + 'VisibilityState';
|
Object.defineProperties(HTMLDocument.prototype, {
|
||||||
event = prefix + 'visibilitychange';
|
visibilityState: {
|
||||||
d.visibilityState = d[property];
|
get: function() {
|
||||||
d.hidden = d.visibilityState === 'hidden';
|
return this.webkitVisibilityState;
|
||||||
return $.on(d, event, function() {
|
}
|
||||||
d.visibilityState = d[property];
|
},
|
||||||
d.hidden = d.visibilityState === 'hidden';
|
hidden: {
|
||||||
|
get: function() {
|
||||||
|
return this.webkitHidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return $.on(d, 'webkitvisibilitychange', function() {
|
||||||
return $.event('visibilitychange');
|
return $.event('visibilitychange');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -12896,7 +12900,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
hl: function(delta, thread) {
|
hl: function(delta, thread) {
|
||||||
var headRect, next, postEl, rect, replies, reply, root, topMargin, _i, _len;
|
var axe, headRect, next, postEl, rect, replies, reply, root, topMargin, _i, _len;
|
||||||
|
|
||||||
if (Conf['Fixed Header'] && Conf['Bottom header']) {
|
if (Conf['Fixed Header'] && Conf['Bottom header']) {
|
||||||
topMargin = 0;
|
topMargin = 0;
|
||||||
@ -12909,7 +12913,8 @@
|
|||||||
rect = postEl.getBoundingClientRect();
|
rect = postEl.getBoundingClientRect();
|
||||||
if (rect.bottom >= topMargin && rect.top <= doc.clientHeight) {
|
if (rect.bottom >= topMargin && rect.top <= doc.clientHeight) {
|
||||||
root = postEl.parentNode;
|
root = postEl.parentNode;
|
||||||
next = $.x('child::div[contains(@class,"post reply")]', delta === +1 ? root.nextElementSibling : root.previousElementSibling);
|
axe = delta === +1 ? 'following' : 'preceding';
|
||||||
|
next = $.x("" + axe + "-sibling::div[contains(@class,'replyContainer')][1]/child::div[contains(@class,'reply')]", root);
|
||||||
if (!next) {
|
if (!next) {
|
||||||
this.focus(postEl);
|
this.focus(postEl);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -3744,18 +3744,22 @@
|
|||||||
return Polyfill.visibility();
|
return Polyfill.visibility();
|
||||||
},
|
},
|
||||||
visibility: function() {
|
visibility: function() {
|
||||||
var event, prefix, property;
|
if (!('webkitHidden' in document)) {
|
||||||
|
|
||||||
if ('visibilityState' in document || !(prefix = ('webkitVisibilityState' in document ? 'webkit' : 'mozVisibilityState' in document ? 'moz' : void 0))) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
property = prefix + 'VisibilityState';
|
Object.defineProperties(HTMLDocument.prototype, {
|
||||||
event = prefix + 'visibilitychange';
|
visibilityState: {
|
||||||
d.visibilityState = d[property];
|
get: function() {
|
||||||
d.hidden = d.visibilityState === 'hidden';
|
return this.webkitVisibilityState;
|
||||||
return $.on(d, event, function() {
|
}
|
||||||
d.visibilityState = d[property];
|
},
|
||||||
d.hidden = d.visibilityState === 'hidden';
|
hidden: {
|
||||||
|
get: function() {
|
||||||
|
return this.webkitHidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return $.on(d, 'webkitvisibilitychange', function() {
|
||||||
return $.event('visibilitychange');
|
return $.event('visibilitychange');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -12879,7 +12883,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
hl: function(delta, thread) {
|
hl: function(delta, thread) {
|
||||||
var headRect, next, postEl, rect, replies, reply, root, topMargin, _i, _len;
|
var axe, headRect, next, postEl, rect, replies, reply, root, topMargin, _i, _len;
|
||||||
|
|
||||||
if (Conf['Fixed Header'] && Conf['Bottom header']) {
|
if (Conf['Fixed Header'] && Conf['Bottom header']) {
|
||||||
topMargin = 0;
|
topMargin = 0;
|
||||||
@ -12892,7 +12896,8 @@
|
|||||||
rect = postEl.getBoundingClientRect();
|
rect = postEl.getBoundingClientRect();
|
||||||
if (rect.bottom >= topMargin && rect.top <= doc.clientHeight) {
|
if (rect.bottom >= topMargin && rect.top <= doc.clientHeight) {
|
||||||
root = postEl.parentNode;
|
root = postEl.parentNode;
|
||||||
next = $.x('child::div[contains(@class,"post reply")]', delta === +1 ? root.nextElementSibling : root.previousElementSibling);
|
axe = delta === +1 ? 'following' : 'preceding';
|
||||||
|
next = $.x("" + axe + "-sibling::div[contains(@class,'replyContainer')][1]/child::div[contains(@class,'reply')]", root);
|
||||||
if (!next) {
|
if (!next) {
|
||||||
this.focus(postEl);
|
this.focus(postEl);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -1,58 +0,0 @@
|
|||||||
/* General */
|
|
||||||
:root.burichan .dialog {
|
|
||||||
background-color: #D6DAF0;
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
}
|
|
||||||
:root.burichan .field:focus {
|
|
||||||
border-color: #98E;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Header */
|
|
||||||
:root.burichan #header-bar, :root.burichan #header-bar #notifications {
|
|
||||||
font-size: 11pt;
|
|
||||||
color: #89A;
|
|
||||||
}
|
|
||||||
:root.burichan #header-bar a, :root.burichan #header-bar #notifications a {
|
|
||||||
color: #34345C;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Settings */
|
|
||||||
:root.burichan #fourchanx-settings fieldset {
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Quote */
|
|
||||||
:root.burichan .backlink.deadlink {
|
|
||||||
color: #34345C !important;
|
|
||||||
}
|
|
||||||
:root.burichan .inline {
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
background-color: rgba(255, 255, 255, .14);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* QR */
|
|
||||||
.burichan #dump-list::-webkit-scrollbar-thumb {
|
|
||||||
background-color: #D6DAF0;
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
}
|
|
||||||
:root.burichan .qr-preview {
|
|
||||||
background-color: rgba(0, 0, 0, .15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Menu */
|
|
||||||
:root.burichan #menu {
|
|
||||||
color: #000000;
|
|
||||||
}
|
|
||||||
:root.burichan .entry {
|
|
||||||
border-bottom: 1px solid #B7C5D9;
|
|
||||||
font-size: 12pt;
|
|
||||||
}
|
|
||||||
:root.burichan .focused.entry {
|
|
||||||
background: rgba(255, 255, 255, .33);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Watcher Favicon */
|
|
||||||
:root.burichan .watch-thread-link
|
|
||||||
{
|
|
||||||
background-image: url("data:image/svg+xml,<svg viewBox='0 0 26 26' preserveAspectRatio='true' xmlns='http://www.w3.org/2000/svg'><path fill='rgb(0,0,0)' d='M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z'/></svg>");
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
/* General */
|
|
||||||
:root.futaba .dialog {
|
|
||||||
background-color: #F0E0D6;
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
}
|
|
||||||
:root.futaba .field:focus {
|
|
||||||
border-color: #EA8;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Header */
|
|
||||||
:root.futaba #header-bar, :root.futaba #notifications {
|
|
||||||
font-size: 11pt;
|
|
||||||
color: #B86;
|
|
||||||
}
|
|
||||||
:root.futaba #header-bar a, :root.futaba #notifications a {
|
|
||||||
color: #800000;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Settings */
|
|
||||||
:root.futaba #fourchanx-settings fieldset {
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Quote */
|
|
||||||
:root.futaba .backlink.deadlink {
|
|
||||||
color: #00E !important;
|
|
||||||
}
|
|
||||||
:root.futaba .inline {
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
background-color: rgba(255, 255, 255, .14);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* QR */
|
|
||||||
.futaba #dump-list::-webkit-scrollbar-thumb {
|
|
||||||
background-color: #F0E0D6;
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
}
|
|
||||||
:root.futaba .qr-preview {
|
|
||||||
background-color: rgba(0, 0, 0, .15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Menu */
|
|
||||||
:root.futaba #menu {
|
|
||||||
color: #800000;
|
|
||||||
}
|
|
||||||
:root.futaba .entry {
|
|
||||||
border-bottom: 1px solid #D9BFB7;
|
|
||||||
font-size: 12pt;
|
|
||||||
}
|
|
||||||
:root.futaba .focused.entry {
|
|
||||||
background: rgba(255, 255, 255, .33);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Watcher Favicon */
|
|
||||||
:root.futaba .watch-thread-link
|
|
||||||
{
|
|
||||||
background-image: url("data:image/svg+xml,<svg viewBox='0 0 26 26' preserveAspectRatio='true' xmlns='http://www.w3.org/2000/svg'><path fill='rgb(128,0,0)' d='M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z'/></svg>");
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
/* General */
|
|
||||||
:root.photon .dialog {
|
|
||||||
background-color: #DDD;
|
|
||||||
border-color: #CCC;
|
|
||||||
}
|
|
||||||
:root.photon .field:focus {
|
|
||||||
border-color: #EA8;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Header */
|
|
||||||
:root.photon #header-bar, :root.photon #notifications {
|
|
||||||
font-size: 9pt;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
:root.photon #header-bar a, :root.photon #notifications a {
|
|
||||||
color: #FF6600;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Settings */
|
|
||||||
:root.photon #fourchanx-settings fieldset {
|
|
||||||
border-color: #CCC;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Quote */
|
|
||||||
:root.photon .backlink.deadlink {
|
|
||||||
color: #F60 !important;
|
|
||||||
}
|
|
||||||
:root.photon .inline {
|
|
||||||
border-color: #CCC;
|
|
||||||
background-color: rgba(255, 255, 255, .14);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* QR */
|
|
||||||
.photon #dump-list::-webkit-scrollbar-thumb {
|
|
||||||
background-color: #DDD;
|
|
||||||
border-color: #CCC;
|
|
||||||
}
|
|
||||||
:root.photon .qr-preview {
|
|
||||||
background-color: rgba(0, 0, 0, .15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Menu */
|
|
||||||
:root.photon #menu {
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
:root.photon .entry {
|
|
||||||
border-bottom: 1px solid #CCC;
|
|
||||||
font-size: 10pt;
|
|
||||||
}
|
|
||||||
:root.photon .focused.entry {
|
|
||||||
background: rgba(255, 255, 255, .33);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Watcher Favicon */
|
|
||||||
:root.photon .watch-thread-link
|
|
||||||
{
|
|
||||||
background-image: url("data:image/svg+xml,<svg viewBox='0 0 26 26' preserveAspectRatio='true' xmlns='http://www.w3.org/2000/svg'><path fill='rgb(51,51,51)' d='M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z'/></svg>");
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
/* General */
|
|
||||||
:root.yotsuba-b .dialog {
|
|
||||||
background-color: #D6DAF0;
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
}
|
|
||||||
:root.yotsuba-b .field:focus {
|
|
||||||
border-color: #98E;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Header */
|
|
||||||
:root.yotsuba-b #header-bar, :root.yotsuba-b #notifications {
|
|
||||||
font-size: 9pt;
|
|
||||||
color: #89A;
|
|
||||||
}
|
|
||||||
:root.yotsuba-b #header-bar a, :root.yotsuba-b #notifications a {
|
|
||||||
color: #34345C;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Settings */
|
|
||||||
:root.yotsuba-b #fourchanx-settings fieldset {
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Quote */
|
|
||||||
:root.yotsuba-b .backlink.deadlink {
|
|
||||||
color: #34345C !important;
|
|
||||||
}
|
|
||||||
:root.yotsuba-b .inline {
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
background-color: rgba(255, 255, 255, .14);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* QR */
|
|
||||||
.yotsuba-b #dump-list::-webkit-scrollbar-thumb {
|
|
||||||
background-color: #D6DAF0;
|
|
||||||
border-color: #B7C5D9;
|
|
||||||
}
|
|
||||||
:root.yotsuba-b .qr-preview {
|
|
||||||
background-color: rgba(0, 0, 0, .15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Menu */
|
|
||||||
:root.yotsuba-b #menu {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
:root.yotsuba-b .entry {
|
|
||||||
border-bottom: 1px solid #B7C5D9;
|
|
||||||
font-size: 10pt;
|
|
||||||
}
|
|
||||||
:root.yotsuba-b .focused.entry {
|
|
||||||
background: rgba(255, 255, 255, .33);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Watcher Favicon */
|
|
||||||
:root.yotsuba-b .watch-thread-link
|
|
||||||
{
|
|
||||||
background-image: url("data:image/svg+xml,<svg viewBox='0 0 26 26' preserveAspectRatio='true' xmlns='http://www.w3.org/2000/svg'><path fill='rgb(0,0,0)' d='M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z'/></svg>");
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
/* General */
|
|
||||||
:root.yotsuba .dialog {
|
|
||||||
background-color: #F0E0D6;
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
}
|
|
||||||
:root.yotsuba .field:focus {
|
|
||||||
border-color: #EA8;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Header */
|
|
||||||
:root.yotsuba #header-bar, :root.yotsuba #notifications {
|
|
||||||
font-size: 9pt;
|
|
||||||
color: #B86;
|
|
||||||
}
|
|
||||||
:root.yotsuba #header-bar a, :root.yotsuba #notifications a {
|
|
||||||
color: #800000;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Settings */
|
|
||||||
:root.yotsuba #fourchanx-settings fieldset {
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Quote */
|
|
||||||
:root.yotsuba .backlink.deadlink {
|
|
||||||
color: #00E !important;
|
|
||||||
}
|
|
||||||
:root.yotsuba .inline {
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
background-color: rgba(255, 255, 255, .14);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* QR */
|
|
||||||
.yotsuba #dump-list::-webkit-scrollbar-thumb {
|
|
||||||
background-color: #F0E0D6;
|
|
||||||
border-color: #D9BFB7;
|
|
||||||
}
|
|
||||||
:root.yotsuba .qr-preview {
|
|
||||||
background-color: rgba(0, 0, 0, .15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Menu */
|
|
||||||
:root.yotsuba #menu {
|
|
||||||
color: #800000;
|
|
||||||
}
|
|
||||||
:root.yotsuba .entry {
|
|
||||||
border-bottom: 1px solid #D9BFB7;
|
|
||||||
font-size: 10pt;
|
|
||||||
}
|
|
||||||
:root.yotsuba .focused.entry {
|
|
||||||
background: rgba(255, 255, 255, .33);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Watcher Favicon */
|
|
||||||
:root.yotsuba .watch-thread-link
|
|
||||||
{
|
|
||||||
background-image: url("data:image/svg+xml,<svg viewBox='0 0 26 26' preserveAspectRatio='true' xmlns='http://www.w3.org/2000/svg'><path fill='rgb(128,0,0)' d='M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z'/></svg>");
|
|
||||||
}
|
|
||||||
@ -3,21 +3,10 @@ Polyfill =
|
|||||||
Polyfill.visibility()
|
Polyfill.visibility()
|
||||||
visibility: ->
|
visibility: ->
|
||||||
# page visibility API
|
# page visibility API
|
||||||
return if 'visibilityState' of document or not (
|
return unless 'webkitHidden' of document
|
||||||
prefix = (
|
Object.defineProperties HTMLDocument.prototype,
|
||||||
if 'webkitVisibilityState' of document
|
visibilityState:
|
||||||
'webkit'
|
get: -> @webkitVisibilityState
|
||||||
else if 'mozVisibilityState' of document
|
hidden:
|
||||||
'moz'
|
get: -> @webkitHidden
|
||||||
)
|
$.on d, 'webkitvisibilitychange', -> $.event 'visibilitychange'
|
||||||
)
|
|
||||||
|
|
||||||
property = prefix + 'VisibilityState'
|
|
||||||
event = prefix + 'visibilitychange'
|
|
||||||
|
|
||||||
d.visibilityState = d[property]
|
|
||||||
d.hidden = d.visibilityState is 'hidden'
|
|
||||||
$.on d, event, ->
|
|
||||||
d.visibilityState = d[property]
|
|
||||||
d.hidden = d.visibilityState is 'hidden'
|
|
||||||
$.event 'visibilitychange'
|
|
||||||
|
|||||||
@ -203,8 +203,11 @@ Keybinds =
|
|||||||
rect = postEl.getBoundingClientRect()
|
rect = postEl.getBoundingClientRect()
|
||||||
if rect.bottom >= topMargin and rect.top <= doc.clientHeight # We're at least partially visible
|
if rect.bottom >= topMargin and rect.top <= doc.clientHeight # We're at least partially visible
|
||||||
root = postEl.parentNode
|
root = postEl.parentNode
|
||||||
next = $.x 'child::div[contains(@class,"post reply")]',
|
axe = if delta is +1
|
||||||
if delta is +1 then root.nextElementSibling else root.previousElementSibling
|
'following'
|
||||||
|
else
|
||||||
|
'preceding'
|
||||||
|
next = $.x "#{axe}-sibling::div[contains(@class,'replyContainer')][1]/child::div[contains(@class,'reply')]", root
|
||||||
unless next
|
unless next
|
||||||
@focus postEl
|
@focus postEl
|
||||||
return
|
return
|
||||||
@ -227,4 +230,4 @@ Keybinds =
|
|||||||
return
|
return
|
||||||
|
|
||||||
focus: (post) ->
|
focus: (post) ->
|
||||||
$.addClass post, 'highlight'
|
$.addClass post, 'highlight'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user