fix: native video fullscreen, window dragging, quality picker, spinner
Enable WKWebView's elementFullscreenEnabled at startup. It is off by default in a Tauri window, which is why the native player had no full-screen button and why right-click 'Enter Full Screen' did nothing. With it on, WebKit's own control appears on the video and gives the real system fullscreen player, so the app-level workaround is gone. Restore window dragging: data-tauri-drag-region needs core:window:allow-start-dragging, which was missing, leaving the title-bar strip inert. Download quality is now a resolution picker (best/2160/1440/1080/720/ 480) instead of a two-way toggle; every selector still pins AAC audio because Opus in MP4 is silent in WebKit. Tile titles truncate to a single line so rows stay uniform, and the player shows a spinner while the video buffers, not just while the stream URL resolves.
This commit is contained in:
+3
-4
@@ -13,7 +13,7 @@ import { useAppearance } from "./hooks/useAppearance";
|
||||
import { useConnectivity } from "./hooks/useConnectivity";
|
||||
import { useDownloads } from "./hooks/useDownloads";
|
||||
import { useFeed } from "./hooks/useFeed";
|
||||
import type { FeedFilter, FeedItem, Quality, RefreshProgress } from "./types";
|
||||
import { QUALITIES, type FeedFilter, type FeedItem, type Quality, type RefreshProgress } from "./types";
|
||||
|
||||
const TOAST_MS = 2400;
|
||||
|
||||
@@ -34,9 +34,8 @@ export default function App() {
|
||||
const [playingIndex, setPlayingIndex] = useState<number | null>(null);
|
||||
const [quality, setQuality] = useState<Quality>(() => {
|
||||
try {
|
||||
return localStorage.getItem("flighttube.quality") === "compatible"
|
||||
? "compatible"
|
||||
: "best";
|
||||
const stored = localStorage.getItem("flighttube.quality");
|
||||
return QUALITIES.some((q) => q.value === stored) ? (stored as Quality) : "best";
|
||||
} catch {
|
||||
return "best";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user