mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
fix(player): le bouton plein écran ne faisait rien sous Chrome
La détection lisait `webkitFullscreenElement` et `mozFullScreenElement` via un cast `dynamic`. dart2js ne retombe pas sur la propriété JavaScript quand le membre n'est pas déclaré sur la classe `Document` : il lève un `NoSuchMethodError`, visible en console sous la forme `method not found: 'gaR5'`. Le test d'état échouait donc à chaque appel, avant même de pouvoir demander le plein écran. Seule l'API non préfixée est désormais utilisée ; elle est supportée par tous les navigateurs visés. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f490e96448
commit
c3b28b8278
1 file changed
+9
-6
@@ -103,12 +103,15 @@ class _PlayerScreenState extends ConsumerState<PlayerScreen> {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
bool get _documentIsFullscreen {
|
||||
final doc = html.document;
|
||||
return doc.fullscreenElement != null ||
|
||||
(doc as dynamic).webkitFullscreenElement != null ||
|
||||
(doc as dynamic).mozFullScreenElement != null;
|
||||
}
|
||||
/// Ne teste que l'API non préfixée.
|
||||
///
|
||||
/// Les variantes `webkitFullscreenElement` / `mozFullScreenElement` étaient
|
||||
/// lues via un cast `dynamic` : dart2js ne retombe pas sur la propriété JS
|
||||
/// pour un membre absent de la classe `Document`, il lève un
|
||||
/// `NoSuchMethodError`. Le getter échouait donc systématiquement, et le
|
||||
/// bouton plein écran ne faisait rien. L'API standard est supportée par
|
||||
/// tous les navigateurs visés.
|
||||
bool get _documentIsFullscreen => html.document.fullscreenElement != null;
|
||||
|
||||
void _syncFullscreenState() {
|
||||
final value = _documentIsFullscreen;
|
||||
|
||||
Reference in new issue
Block a user