diff --git a/RELEASES.json b/RELEASES.json index d506d87..deee288 100644 --- a/RELEASES.json +++ b/RELEASES.json @@ -1,4 +1,12 @@ [ + { + "version": "2026-04-29T20:10Z", + "date": "2026-04-29", + "title": "Blur versucht zu fixen", + "items": [ + "war nix..." + ] + }, { "version": "2026-04-26T21:10Z", "date": "2026-04-26", diff --git a/src/static/dashboard.html b/src/static/dashboard.html index 70c9cee..0ad8ebb 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -626,9 +626,9 @@ - + - + diff --git a/src/static/js/app.js b/src/static/js/app.js index 2f0dc71..1d94dfa 100644 --- a/src/static/js/app.js +++ b/src/static/js/app.js @@ -736,7 +736,11 @@ const App = { const prevMini = document.getElementById('progress-mini'); if (prevMini) prevMini.style.display = 'none'; const grid = document.querySelector('.tab-panels'); - if (grid) grid.classList.remove('blurred'); + // Wenn gerade ein erster Refresh laeuft, Blur stehen lassen statt + // remove+add im selben Tick — CSS filter:blur greift sonst nicht. + const _restState = isRefreshing ? UI._progressState[id] : null; + const _willReBlur = _restState && _restState.isFirst && !_restState.minimized; + if (grid && !_willReBlur) grid.classList.remove('blurred'); if (isRefreshing) { const state = UI._progressState[id]; diff --git a/src/static/js/components.js b/src/static/js/components.js index a58fb21..5a05c8c 100644 --- a/src/static/js/components.js +++ b/src/static/js/components.js @@ -336,7 +336,16 @@ const UI = { overlay.classList.add('blocking'); // Apply blur to grid const grid = document.querySelector('.tab-panels'); - if (grid) grid.classList.add('blurred'); + if (grid) { + grid.classList.add('blurred'); + // Sicherheitsnetz: bei viel DOM-Reshuffle im selben Tick + // (Display-Wechsel, renderSidebar, leere innerHTML) greift + // CSS filter:blur erst beim naechsten Layout-Pass. Im + // naechsten Frame nochmal setzen — idempotent. + requestAnimationFrame(() => { + if (state && state.isFirst) grid.classList.add('blurred'); + }); + } } else { overlay.classList.remove('blocking'); }