diff --git a/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj b/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj index 4f86364..c6125da 100644 --- a/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj +++ b/Jellyfin.Plugin.MediaBarEnhanced/Jellyfin.Plugin.MediaBarEnhanced.csproj @@ -12,7 +12,7 @@ Jellyfin Media Bar Enhanced Plugin CodeDevMLH - 1.5.0.25 + 1.5.0.26 https://github.com/CodeDevMLH/jellyfin-plugin-media-bar-enhanced diff --git a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js index a355485..a444dc6 100644 --- a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js +++ b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js @@ -2705,12 +2705,20 @@ const SlideshowManager = { } const activeElement = document.activeElement; + // Detect TV Mode const isTvDevice = window.browser && window.browser.tv; const isTvLayout = window.layoutManager && window.layoutManager.tv; const hasTvClass = document.documentElement.classList.contains('layout-tv') || document.body.classList.contains('layout-tv'); const isTvMode = isTvDevice || isTvLayout || hasTvClass; - // Check Focus State + // Apply scroll fix if TV mode is detected + if (isTvMode) { + document.documentElement.style.scrollPaddingTop = '65vh'; + } else { + document.documentElement.style.scrollPaddingTop = ''; + } + + // 2. Check Focus State const isBodyFocused = activeElement === document.body; const hasDirectFocus = container.contains(activeElement) || activeElement === container; @@ -2787,6 +2795,23 @@ const SlideshowManager = { container.addEventListener("blur", () => { STATE.slideshow.containerFocused = false; }); + + // Helper to apply TV mode styles immediately + const applyTvStyles = () => { + const isTv = (window.browser && window.browser.tv) || + (window.layoutManager && window.layoutManager.tv) || + document.documentElement.classList.contains('layout-tv') || + document.body.classList.contains('layout-tv'); + + if (isTv) { + document.documentElement.style.scrollPaddingTop = '65vh'; + document.body.style.scrollPaddingTop = '65vh'; + } + }; + + // Run immediately and on focus changes to ensure styles are applied + applyTvStyles(); + document.addEventListener('focusin', applyTvStyles); }, /** diff --git a/manifest.json b/manifest.json index ed47163..c17b1d8 100644 --- a/manifest.json +++ b/manifest.json @@ -9,7 +9,7 @@ "imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/raw/branch/main/logo.png", "versions": [ { - "version": "1.5.0.25", + "version": "1.5.0.27", "changelog": "- fix: Keyboard controls in TV mode\n- Add sorting options for content\n- Update mediaBarEnhanced.js and mediaBarEnhanced.css with version 4.0.1 from original repo", "targetAbi": "10.11.0.0", "sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.5.0.25/Jellyfin.Plugin.MediaBarEnhanced.zip",