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();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get _documentIsFullscreen {
|
/// Ne teste que l'API non préfixée.
|
||||||
final doc = html.document;
|
///
|
||||||
return doc.fullscreenElement != null ||
|
/// Les variantes `webkitFullscreenElement` / `mozFullScreenElement` étaient
|
||||||
(doc as dynamic).webkitFullscreenElement != null ||
|
/// lues via un cast `dynamic` : dart2js ne retombe pas sur la propriété JS
|
||||||
(doc as dynamic).mozFullScreenElement != null;
|
/// 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() {
|
void _syncFullscreenState() {
|
||||||
final value = _documentIsFullscreen;
|
final value = _documentIsFullscreen;
|
||||||
|
|||||||
Reference in new issue
Block a user