get new hover working in catalog

This commit is contained in:
ccd0 2014-04-05 21:59:29 -07:00
parent 904af13063
commit e1c9330250
7 changed files with 72 additions and 50 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -311,7 +311,7 @@ UI = do ->
$.off d, 'mouseup', @up $.off d, 'mouseup', @up
$.set "#{@id}.position", @style.cssText $.set "#{@id}.position", @style.cssText
hoverstart = ({root, el, latestEvent, endEvents, asapTest, cb, offsetX, offsetY}) -> hoverstart = ({root, el, latestEvent, endEvents, asapTest, cb, offsetX, offsetY, noRemove}) ->
o = { o = {
root root
el el
@ -323,6 +323,7 @@ UI = do ->
clientWidth: doc.clientWidth clientWidth: doc.clientWidth
offsetX: offsetX or 45 offsetX: offsetX or 45
offsetY: offsetY or -120 offsetY: offsetY or -120
noRemove
} }
o.hover = hover.bind o o.hover = hover.bind o
o.hoverend = hoverend.bind o o.hoverend = hoverend.bind o
@ -339,7 +340,7 @@ UI = do ->
$.on root, 'mousemove', o.hover $.on root, 'mousemove', o.hover
<% if (type === 'userscript') { %> <% if (type === 'userscript') { %>
# Workaround for https://github.com/MayhemYDG/4chan-x/issues/377 # Workaround for https://github.com/MayhemYDG/4chan-x/issues/377
o.workaround = (e) -> o.hoverend() unless root.contains e.target o.workaround = (e) -> o.hoverend(e) unless root.contains e.target
$.on doc, 'mousemove', o.workaround $.on doc, 'mousemove', o.workaround
<% } %> <% } %>
@ -368,7 +369,7 @@ UI = do ->
hoverend = (e) -> hoverend = (e) ->
return if e.type is 'keydown' and e.keyCode isnt 13 or e.target.nodeName is "TEXTAREA" return if e.type is 'keydown' and e.keyCode isnt 13 or e.target.nodeName is "TEXTAREA"
$.rm @el if @el.parentNode is Header.hover $.rm @el unless @noRemove
$.off @root, @endEvents, @hoverend $.off @root, @endEvents, @hoverend
$.off d, 'keydown', @hoverend $.off d, 'keydown', @hoverend
$.off @root, 'mousemove', @hover $.off @root, 'mousemove', @hover

View File

@ -824,10 +824,15 @@ span.hide-announcement {
/* File */ /* File */
.fileText:hover .fntrunc, .fileText:hover .fntrunc,
.fileText:not(:hover) .fnfull, .fileText:not(:hover) .fnfull,
.expanded-image > .post > .file > .fileThumb > img[data-md5], .expanded-image > .post > .file > .fileThumb > img[data-md5] {
:not(.expanded-image) > .post > .file .full-image:not(#ihover) {
display: none; display: none;
} }
.full-image:not(#ihover) {
display: none;
}
.expanded-image > .post > .file .full-image:not(#ihover) {
display: inline;
}
.expanding { .expanding {
opacity: .5; opacity: .5;
} }

View File

@ -91,7 +91,7 @@ ImageExpand =
video.pause() video.pause()
for eventName, cb of ImageExpand.videoCB for eventName, cb of ImageExpand.videoCB
$.off video, eventName, cb $.off video, eventName, cb
TrashQueue.add video TrashQueue.add video, post
post.file.videoControls?.map($.rm) post.file.videoControls?.map($.rm)
delete post.file.videoControls delete post.file.videoControls
$.rmClass post.nodes.root, 'expanded-image' $.rmClass post.nodes.root, 'expanded-image'

View File

@ -12,7 +12,7 @@ ImageHover =
return unless @file?.isImage or @file?.isVideo return unless @file?.isImage or @file?.isVideo
$.on @file.thumb, 'mouseover', ImageHover.mouseover $.on @file.thumb, 'mouseover', ImageHover.mouseover
catalogNode: -> catalogNode: ->
return unless @thread.OP.file?.isImage return unless @thread.OP.file?.isImage or @thread.OP.file?.isVideo
$.on @nodes.thumb, 'mouseover', ImageHover.mouseover $.on @nodes.thumb, 'mouseover', ImageHover.mouseover
mouseover: (e) -> mouseover: (e) ->
post = if $.hasClass @, 'thumb' post = if $.hasClass @, 'thumb'
@ -29,7 +29,10 @@ ImageHover =
src: post.file.URL src: post.file.URL
post.file.fullImage = el post.file.fullImage = el
{thumb} = post.file {thumb} = post.file
$.after (if isVideo and Conf['Show Controls'] then thumb.parentNode else thumb), el if d.body.contains thumb
$.after (if isVideo and Conf['Show Controls'] then thumb.parentNode else thumb), el
else
$.add Header.hover, el
el.id = 'ihover' el.id = 'ihover'
el.dataset.fullID = post.fullID el.dataset.fullID = post.fullID
if isVideo if isVideo
@ -44,10 +47,11 @@ ImageHover =
latestEvent: e latestEvent: e
endEvents: 'mouseout click' endEvents: 'mouseout click'
asapTest: -> el[naturalHeight] asapTest: -> el[naturalHeight]
noRemove: true
cb: -> cb: ->
if isVideo if isVideo
el.pause() el.pause()
TrashQueue.add el TrashQueue.add el, post
el.removeAttribute 'id' el.removeAttribute 'id'
$.on el, 'error', ImageHover.error $.on el, 'error', ImageHover.error
error: -> error: ->

View File

@ -1,12 +1,12 @@
TrashQueue = TrashQueue =
init: -> return init: -> return
add: (video) -> add: (video, post) ->
if video isnt @killNext and @killNext if @killNext and video isnt @killNext
post = Get.postFromNode @killNext delete @killNextPost?.file?.fullImage
delete post?.file?.fullImage
$.rm @killNext $.rm @killNext
@killNext = video @killNext = video
@killNextPost = post
remove: (video) -> remove: (video) ->
if video is @killNext if video is @killNext