Django internet radio player
ContinuousBookViews vertikale Scrollbar reserviert 2 Spalten, die vorher nicht aus der Wrap-Breite herausgerechnet wurden — der Text wurde also 2 Zeichen breiter gewrappt, als tatsächlich sichtbar war, wodurch die Scrollbar die letzten 1-2 Buchstaben jeder Zeile überdeckt hat. Bei schmalen Terminals (großer Font, wenig Spalten) war das besonders auffällig, betraf strukturell aber jede Breite. Fix: overflow-x: hidden (eine ungewollte horizontale Scrollbar hat zusätzlich eine Zeile unten geklaut) + overflow-y: scroll (hält die Scrollbar-Breite von Anfang an konstant, kein Rätselraten je nach Inhaltsgröße) in book_view.py. reader_screen.py misst die Wrap-Breite jetzt am Container statt an book_view selbst (vermeidet einen Miss-nach-Einschränken-Zirkelbezug bei wiederholten Resizes) und rechnet die feste Scrollbar-Breite (SCROLLBAR_GUTTER=2) heraus; beim Anwenden des Layouts wird sie wieder daraufgerechnet, damit book_view.styles.width weiterhin fürs Zentrieren passt. Getestet: content_region-Breite stimmt jetzt exakt mit der Wrap-Breite über sechs verschiedene Terminalbreiten (60-200 Spalten, inkl. des 120-Zeichen-Cap-Bereichs) überein — vorher lag sie durchgehend 2 Spalten darunter. Voller Regressionstest (Scroll, Fußnote, Resize) läuft weiter fehlerfrei. |
||
|---|---|---|
| .forgejo/workflows | ||
| accounts | ||
| books | ||
| diora | ||
| e2e | ||
| gpodder | ||
| podcasts | ||
| radio | ||
| static | ||
| templates | ||
| tui | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.cron | ||
| manage.py | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.js | ||
| requirements.txt | ||