diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fb9f84e1..a1f76bf41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,9 @@ ## v1.12.0 +**v1.12.0.8** *(2016-07-07)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.12.0.8/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.12.0.8/builds/4chan-X-noupdate.crx)] +- Restore `Restart when Opened` option. + **v1.12.0.7** *(2016-07-06)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.12.0.7/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.12.0.7/builds/4chan-X-noupdate.crx)] - Restore `Open Post in New Tab` option. diff --git a/src/Images/ImageCommon.coffee b/src/Images/ImageCommon.coffee index 5fb2e054b..489905755 100644 --- a/src/Images/ImageCommon.coffee +++ b/src/Images/ImageCommon.coffee @@ -6,6 +6,12 @@ ImageCommon = $.off video, 'volumechange', Volume.change video.muted = true + rewind: (el) -> + if el.nodeName is 'VIDEO' + el.currentTime = 0 if el.readyState >= el.HAVE_METADATA + else if /\.gif$/.test el.src + $.queueTask -> el.src = el.src + pushCache: (el) -> ImageCommon.cache = el $.on el, 'error', ImageCommon.cacheError diff --git a/src/Images/ImageExpand.coffee b/src/Images/ImageExpand.coffee index c28a951b3..712e2dc7a 100644 --- a/src/Images/ImageExpand.coffee +++ b/src/Images/ImageExpand.coffee @@ -146,6 +146,7 @@ ImageExpand = ImageCommon.pause el for eventName, cb of ImageExpand.videoCB $.off el, eventName, cb + ImageCommon.rewind file.thumb if Conf['Restart when Opened'] delete file.fullImage $.queueTask -> # XXX Work around Chrome/Chromium not firing mouseover on the thumbnail. @@ -168,6 +169,7 @@ ImageExpand = else if ImageCommon.cache?.dataset.fullID is post.fullID el = file.fullImage = ImageCommon.popCache() $.on el, 'error', ImageExpand.error + ImageCommon.rewind el if Conf['Restart when Opened'] and el.id isnt 'ihover' el.removeAttribute 'id' else el = file.fullImage = $.el (if isVideo then 'video' else 'img') diff --git a/src/Images/ImageHover.coffee b/src/Images/ImageHover.coffee index 7d1cf92ac..b05095d3a 100644 --- a/src/Images/ImageHover.coffee +++ b/src/Images/ImageHover.coffee @@ -34,6 +34,9 @@ ImageHover = $.on el, 'error', error el.src = file.url + if Conf['Restart when Opened'] + ImageCommon.rewind el + ImageCommon.rewind @ el.id = 'ihover' $.add Header.hover, el if isVideo diff --git a/src/config/Config.coffee b/src/config/Config.coffee index 764acec8e..8f42c81a2 100644 --- a/src/config/Config.coffee +++ b/src/config/Config.coffee @@ -254,6 +254,10 @@ Config = true 'Videos begin playing immediately when opened.' ] + 'Restart when Opened': [ + false + 'Restart GIFs and WebMs when you hover over or expand them.' + ] 'Show Controls': [ true 'Show controls on videos expanded inline.'