From e2cf3e01489193bf62ae5262a28232698c59b38c Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Sat, 26 Feb 2022 12:15:03 +0300 Subject: [PATCH] Show slideshow OSD on click --- src/components/slideshow/slideshow.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js index dd59ca08f8..c24b031a65 100644 --- a/src/components/slideshow/slideshow.js +++ b/src/components/slideshow/slideshow.js @@ -216,29 +216,32 @@ export default function (options) { dialogHelper.close(dialog); }); + dialog.querySelector('.btnSlideshowPrevious')?.addEventListener('click', getClickHandler(null)); + dialog.querySelector('.btnSlideshowNext')?.addEventListener('click', getClickHandler(null)); + const btnPause = dialog.querySelector('.btnSlideshowPause'); if (btnPause) { - btnPause.addEventListener('click', playPause); + btnPause.addEventListener('click', getClickHandler(playPause)); } const btnDownload = dialog.querySelector('.btnDownload'); if (btnDownload) { - btnDownload.addEventListener('click', download); + btnDownload.addEventListener('click', getClickHandler(download)); } const btnShare = dialog.querySelector('.btnShare'); if (btnShare) { - btnShare.addEventListener('click', share); + btnShare.addEventListener('click', getClickHandler(share)); } const btnFullscreen = dialog.querySelector('.btnFullscreen'); if (btnFullscreen) { - btnFullscreen.addEventListener('click', fullscreen); + btnFullscreen.addEventListener('click', getClickHandler(fullscreen)); } const btnFullscreenExit = dialog.querySelector('.btnFullscreenExit'); if (btnFullscreenExit) { - btnFullscreenExit.addEventListener('click', fullscreenExit); + btnFullscreenExit.addEventListener('click', getClickHandler(fullscreenExit)); } if (screenfull.isEnabled) { @@ -756,6 +759,17 @@ export default function (options) { } } + /** + * Constructs click event handler. + * @param {function|null|undefined} callback - Click event handler. + */ + function getClickHandler(callback) { + return (e) => { + showOsd(); + callback?.(e); + }; + } + /** * Shows the slideshow component. */