diff --git a/src/General/lib/$.coffee b/src/General/lib/$.coffee index 55624bbd7..dc71bff5c 100755 --- a/src/General/lib/$.coffee +++ b/src/General/lib/$.coffee @@ -197,6 +197,12 @@ $.off = (el, events, handler) -> el.removeEventListener event, handler, false return +$.one = (el, events, handler) -> + cb = (e) -> + $.off el, events, cb + handler.call @, e + $.on el, events, cb + $.event = (event, detail, root=d) -> <% if (type === 'userscript') { %> if detail? and typeof cloneInto is 'function' diff --git a/src/Images/Gallery.coffee b/src/Images/Gallery.coffee index 21bf07a28..0090643e2 100644 --- a/src/Images/Gallery.coffee +++ b/src/Images/Gallery.coffee @@ -79,6 +79,8 @@ Gallery = if Header.getTopOf(candidate) + candidate.getBoundingClientRect().height >= 0 image = candidate if Conf['Fullscreen Gallery'] + $.one d, 'fullscreenchange mozfullscreenchange webkitfullscreenchange', -> + $.on d, 'fullscreenchange mozfullscreenchange webkitfullscreenchange', cb.close doc.mozRequestFullScreen?() doc.webkitRequestFullScreen?(Element.ALLOW_KEYBOARD_INPUT) $.addClass doc, 'gallery-open' @@ -265,6 +267,7 @@ Gallery = $.rm Gallery.nodes.el $.rmClass doc, 'gallery-open' if Conf['Fullscreen Gallery'] + $.off d, 'fullscreenchange mozfullscreenchange webkitfullscreenchange', Gallery.cb.close d.mozCancelFullScreen?() d.webkitExitFullscreen?() delete Gallery.nodes