Only activate Catalog Hover Expand when catalog is clicked. Deactivate on second click. #489

This commit is contained in:
ccd0 2016-11-06 22:04:31 -08:00
parent c2a2dafe7f
commit 2cc3fc4572
5 changed files with 21 additions and 11 deletions

View File

@ -18,7 +18,7 @@ Get =
index = root.dataset.clone
if index then post.clones[index] else post
postFromNode: (root) ->
Get.postFromRoot $.x '(ancestor::div[contains(@class,"postContainer")][1]|following::div[contains(@class,"postContainer")][1])', root
Get.postFromRoot $.x '(ancestor-or-self::div[contains(@class,"postContainer")][1]|following::div[contains(@class,"postContainer")][1])', root
postDataFromLink: (link) ->
if link.hostname is 'boards.4chan.org'
path = link.pathname.split /\/+/

View File

@ -109,8 +109,8 @@ Index =
# Thread container
@root = $.el 'div', className: 'board json-index'
$.on @root, 'click', @cb.hoverToggle
@cb.size()
@cb.hover()
# Page list
@pagelist = $.el 'div', className: 'pagelist json-index'
@ -278,9 +278,14 @@ Index =
replies: ->
Index.buildIndex()
hover: (e) ->
doc.classList.toggle 'catalog-hover-expand', Conf['Catalog Hover Expand']
Index.cb.replies() if e and Conf['Show Replies'] and Conf['Catalog Hover Expand']
hover: ->
$.rmClass doc, 'catalog-hover-expand' unless Conf['Catalog Hover Expand']
hoverToggle: (e) ->
if Conf['Catalog Hover Expand'] and !$.modifiedClick(e) and !$.x('ancestor-or-self::a', e.target)
$.toggleClass doc, 'catalog-hover-expand'
if (post = Get.postFromNode e.target)
Index.cb.hoverAdjust.call post.nodes
popstate: (e) ->
if e?.state
@ -315,13 +320,13 @@ Index =
Index.update()
catalogReplies: ->
$.off @, 'mouseover', Index.cb.catalogReplies
return unless Conf['Show Replies'] and Conf['Catalog Hover Expand'] and @parentNode
return unless Conf['Show Replies'] and $.hasClass(doc, 'catalog-hover-expand')
$.off @, 'mouseenter', Index.cb.catalogReplies
Index.buildCatalogReplies Get.threadFromRoot @
hoverAdjust: ->
# Prevent hovered catalog threads from going offscreen.
return unless Conf['Catalog Hover Expand']
return unless $.hasClass(doc, 'catalog-hover-expand')
rect = @post.getBoundingClientRect()
if (x = $.minmax 0, -rect.left, doc.clientWidth - rect.right)
{style} = @post
@ -852,8 +857,7 @@ Index =
thread.OP.setCatalogOP true
$.add thread.catalogView.nodes.root, thread.OP.nodes.root
nodes.push thread.catalogView.nodes.root
if Conf['Show Replies'] and Conf['Catalog Hover Expand']
$.on thread.catalogView.nodes.root, 'mouseover', Index.cb.catalogReplies
$.on thread.catalogView.nodes.root, 'mouseenter', Index.cb.catalogReplies
$.on thread.OP.nodes.root, 'mouseenter', Index.cb.hoverAdjust.bind(thread.OP.nodes)
$.add Index.root, nodes
nodes

View File

@ -272,3 +272,4 @@ class Post
@nodes.root.classList.toggle 'opContainer', !isCatalogOP
@nodes.post.classList.toggle 'catalog-post', isCatalogOP
@nodes.post.classList.toggle 'op', !isCatalogOP
@nodes.post.style.left = @nodes.post.style.right = null

View File

@ -737,7 +737,7 @@ Config =
'Previous Index Mode': 'paged'
'Index Size': 'small'
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.']
'Catalog Hover Expand': [true, 'Expand the comment and show more details when you hover over a thread in the catalog.']
'Catalog Hover Expand': [true, 'Clicking in the catalog shows more details in the thread you are hovering over.']
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.']
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.']
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']

View File

@ -760,6 +760,11 @@ div[data-checked="false"] > .suboption-list {
border: 1px solid transparent;
padding-top: 20px;
}
/* overrides inline CSS from Index.cb.hoverAdjust */
:root:not(.catalog-hover-expand) .catalog-post {
left: 0 !important;
right: 0 !important;
}
/* overrides 4chan CSS on div.post */
.catalog-post.catalog-post {
margin: -21px -1px -1px;