Open netAction opened 7 months ago
Hi @netAction does this happen when you publish on gd.games too? If so, can you share a link so we can see the problem in action? Thanks
Yes the bug is reproducable in gd.games. https://gd.games/netaction/fullscreen-bug
Thanks, that's very helpful and detailed, we're probably missing an event not being listened properly or using a wrong logic
This is the function being used in the runtime to set the full screen (it's quite old), saving the variable in the state. https://github.com/4ian/GDevelop/blob/5c66623631083caf5aaf2f2d5629329a6c314ba2/GDJS/Runtime/pixi-renderers/runtimegame-pixi-renderer.ts#L390-L446
There are indeed no listeners on wether the full screen has been left. We could try adding a listener on https://developer.mozilla.org/en-US/docs/Web/API/Element/fullscreenchange_event in this method to see if it catches it or not
Is there an existing issue for this?
Describe the bug
Affects: HTML5 export.
Both fullscreen detection and fullscreen switch methods are broken when the user leaves fullscreen on Chrome/Windows via Esc key or on Chrome/Android via < button or on Safari/IOs via swipe down.
After executing the Activate fullscreen action, GDevelop thinks it is in fullscreen. Even if it is not, because fullscreen has been left manually. Then running Activate fullscreen again might crash. And worse, the condition The game is in fullscreen says true but it is not.
The Javascript code if (document.fullscreenElement != null) returns the correct value on all three browsers, no matter if the fullscreen has been closed via Activate fullscreen action or via the intended browser way.
Minimal project for reproduction:
Steps to reproduce
GDevelop platform
Desktop
GDevelop version
5.3.195
Platform info
IDE: GDevelop via Microsoft Store on Windows 11
Browser: Chrome/Windows, Chrome/Android, Safari/IOs
Additional context
No response