From 2b8ce2c1a88ed70889d9192adff5b0e327e0d9a7 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Sun, 15 Feb 2015 00:29:59 -0800 Subject: [PATCH] Extend Mouse Wheel Volume to expanded videos and gallery. --- src/General/Config.coffee | 8 ++++---- src/Images/Gallery.coffee | 1 + src/Images/ImageHover.coffee | 11 ----------- src/Images/Volume.coffee | 27 +++++++++++++++++++++++++++ 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/General/Config.coffee b/src/General/Config.coffee index b455aafdb..67f941ae4 100755 --- a/src/General/Config.coffee +++ b/src/General/Config.coffee @@ -183,10 +183,6 @@ Config = false 'Show full image / video on mouseover in <%= meta.name %> catalog.' ] - 'Mouse Wheel Volume': [ - true - 'Adjust volume of hovering videos with mouse wheel.' - ] 'Gallery': [ true 'Adds a simple and cute image gallery.' @@ -262,6 +258,10 @@ Config = true 'Open videos with the sound unmuted.' ] + 'Mouse Wheel Volume': [ + true + 'Adjust volume of videos with the mouse wheel over the thumbnail/filename/gallery.' + ] 'Loop in New Tab': [ true 'Loop videos opened in their own tabs.' diff --git a/src/Images/Gallery.coffee b/src/Images/Gallery.coffee index 79ecb4db7..64808fdc1 100644 --- a/src/Images/Gallery.coffee +++ b/src/Images/Gallery.coffee @@ -60,6 +60,7 @@ Gallery = {cb} = Gallery $.on nodes.frame, 'click', cb.blank + $.on nodes.frame, 'wheel', Volume.wheel if Conf['Mouse Wheel Volume'] $.on nodes.next, 'click', cb.click $.on nodes.name, 'click', ImageCommon.download diff --git a/src/Images/ImageHover.coffee b/src/Images/ImageHover.coffee index 7190689fe..bed03f2e4 100755 --- a/src/Images/ImageHover.coffee +++ b/src/Images/ImageHover.coffee @@ -13,13 +13,11 @@ ImageHover = node: -> return unless @file and (@file.isImage or @file.isVideo) $.on @file.thumb, 'mouseover', ImageHover.mouseover @ - $.on @file.thumb, 'wheel', ImageHover.wheel if Conf['Mouse Wheel Volume'] and @file.isVideo catalogNode: -> {file} = @thread.OP return unless file and (file.isImage or file.isVideo) $.on @nodes.thumb, 'mouseover', ImageHover.mouseover @thread.OP - $.on @nodes.thumb, 'wheel', ImageHover.wheel if Conf['Mouse Wheel Volume'] and @thread.OP.file.isVideo mouseover: (post) -> (e) -> return unless doc.contains @ @@ -76,12 +74,3 @@ ImageHover = @src = URL + if @src is URL then '?' + Date.now() else '' else $.rm @ - - wheel: (e) -> - return unless el = $.id 'ihover' - return if el.muted or not $.hasAudio el - volume = el.volume + 0.1 - volume *= 1.1 if e.deltaY < 0 - volume /= 1.1 if e.deltaY > 0 - el.volume = $.minmax volume - 0.1, 0, 1 - e.preventDefault() diff --git a/src/Images/Volume.coffee b/src/Images/Volume.coffee index 55d8039c4..09a004300 100644 --- a/src/Images/Volume.coffee +++ b/src/Images/Volume.coffee @@ -31,6 +31,14 @@ Volume = Header.menu.addEntry {el: unmuteEntry, order: 200} Header.menu.addEntry {el: volumeEntry, order: 201} + if Conf['Mouse Wheel Volume'] + Post.callbacks.push + name: 'Mouse Wheel Volume' + cb: @node + CatalogThread.callbacks.push + name: 'Mouse Wheel Volume' + cb: @catalogNode + setup: (video) -> video.muted = !Conf['Allow Sound'] video.volume = Conf['Default Volume'] @@ -46,3 +54,22 @@ Volume = if Volume.inputs Volume.inputs.unmute.checked = !muted Volume.inputs.volume.value = volume + + node: -> + return unless @file?.isVideo + $.on @file.thumb, 'wheel', Volume.wheel.bind(Header.hover) + $.on $('a', @file.text), 'wheel', Volume.wheel.bind(@file.thumb.parentNode) + + catalogNode: -> + {file} = @thread.OP + return unless file?.isVideo + $.on @nodes.thumb, 'wheel', Volume.wheel.bind(Header.hover) + + wheel: (e) -> + return unless el = $ 'video:not([data-md5])', @ + return if el.muted or not $.hasAudio el + volume = el.volume + 0.1 + volume *= 1.1 if e.deltaY < 0 + volume /= 1.1 if e.deltaY > 0 + el.volume = $.minmax volume - 0.1, 0, 1 + e.preventDefault()