Mayhem's unread scroll fixes

This commit is contained in:
Jordan Bates 2013-04-24 12:59:07 -07:00
parent 867ba2bf0e
commit eb0386c82f
4 changed files with 64 additions and 71 deletions

View File

@ -6585,29 +6585,27 @@
if (Conf['Unread Line']) {
$.on(d, 'visibilitychange', Unread.setLine);
}
if (!Conf['Scroll to Last Read Post']) {
if (Conf['Scroll to Last Read Post']) {
return $.on(window, 'load', Unread.scroll);
}
},
scroll: function() {
var hash, posts, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
return;
}
return $.on(window, 'load', function() {
var hash, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in this.posts) {
return;
}
if (Unread.posts.length) {
while (root = $.x('preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root)) {
if (!(Get.postFromRoot(root)).isHidden) {
break;
}
if (Unread.posts.length) {
while (root = $.x('preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root)) {
if (!(Get.postFromRoot(root)).isHidden) {
break;
}
if (!root) {
return;
}
return root.scrollIntoView(false);
} else if (posts.length) {
return Header.scrollToPost(posts[posts.length - 1].nodes.root);
}
});
root.scrollIntoView(false);
return;
}
posts = Object.keys(Unread.thread.posts);
return Header.scrollToPost(Unread.thread.posts[posts[posts.length - 1]].nodes.root);
},
sync: function() {
var lastReadPost;

View File

@ -6576,29 +6576,27 @@
if (Conf['Unread Line']) {
$.on(d, 'visibilitychange', Unread.setLine);
}
if (!Conf['Scroll to Last Read Post']) {
if (Conf['Scroll to Last Read Post']) {
return $.on(window, 'load', Unread.scroll);
}
},
scroll: function() {
var hash, posts, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
return;
}
return $.on(window, 'load', function() {
var hash, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in this.posts) {
return;
}
if (Unread.posts.length) {
while (root = $.x('preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root)) {
if (!(Get.postFromRoot(root)).isHidden) {
break;
}
if (Unread.posts.length) {
while (root = $.x('preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root)) {
if (!(Get.postFromRoot(root)).isHidden) {
break;
}
if (!root) {
return;
}
return root.scrollIntoView(false);
} else if (posts.length) {
return Header.scrollToPost(posts[posts.length - 1].nodes.root);
}
});
root.scrollIntoView(false);
return;
}
posts = Object.keys(Unread.thread.posts);
return Header.scrollToPost(Unread.thread.posts[posts[posts.length - 1]].nodes.root);
},
sync: function() {
var lastReadPost;

View File

@ -6440,29 +6440,27 @@
if (Conf['Unread Line']) {
$.on(d, 'visibilitychange', Unread.setLine);
}
if (!Conf['Scroll to Last Read Post']) {
if (Conf['Scroll to Last Read Post']) {
return $.on(window, 'load', Unread.scroll);
}
},
scroll: function() {
var hash, posts, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
return;
}
return $.on(window, 'load', function() {
var hash, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in this.posts) {
return;
}
if (Unread.posts.length) {
while (root = $.x('preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root)) {
if (!(Get.postFromRoot(root)).isHidden) {
break;
}
if (Unread.posts.length) {
while (root = $.x('preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root)) {
if (!(Get.postFromRoot(root)).isHidden) {
break;
}
if (!root) {
return;
}
return root.scrollIntoView(false);
} else if (posts.length) {
return Header.scrollToPost(posts[posts.length - 1].nodes.root);
}
});
root.scrollIntoView(false);
return;
}
posts = Object.keys(Unread.thread.posts);
return Header.scrollToPost(Unread.thread.posts[posts[posts.length - 1]].nodes.root);
},
sync: function() {
var lastReadPost;

View File

@ -26,21 +26,20 @@ Unread =
$.on d, 'ThreadUpdate', Unread.onUpdate
$.on d, 'scroll visibilitychange', Unread.read
$.on d, 'visibilitychange', Unread.setLine if Conf['Unread Line']
$.on window, 'load', Unread.scroll if Conf['Scroll to Last Read Post']
return unless Conf['Scroll to Last Read Post']
$.on window, 'load', ->
# Let the header's onload callback handle it.
return if (hash = location.hash.match /\d+/) and hash[0] of @posts
if Unread.posts.length
# Scroll to before the first unread post.
while root = $.x 'preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root
break unless (Get.postFromRoot root).isHidden
return unless root
root.scrollIntoView false
else if posts.length
# Scroll to the last read post.
Header.scrollToPost (posts[posts.length - 1]).nodes.root
scroll: ->
# Let the header's onload callback handle it.
return if (hash = location.hash.match /\d+/) and hash[0] of Unread.thread.posts
if Unread.posts.length
# Scroll to before the first unread post.
while root = $.x 'preceding-sibling::div[contains(@class,"postContainer")][1]', Unread.posts[0].nodes.root
break unless (Get.postFromRoot root).isHidden
root.scrollIntoView false
return
# Scroll to the last read post.
posts = Object.keys Unread.thread.posts
Header.scrollToPost Unread.thread.posts[posts[posts.length - 1]].nodes.root
sync: ->
lastReadPost = Unread.db.get