Closed
Description
Issue description
The current experience with fullscreen & borderless fullscreen is not great. Both modes have different issues on different operating systems and often have different screen / render / monitor values associated with them. My goal is to make them work consistent on all platforms.
@JeffM2501 any ideas are welcome :)
Fullscreen Mode
- does not save window size, only window position
- resets window size to current window size instead of restoring previous window size
- sets window size to current screen size instead of setting it to monitor size
- it saves current window size, then sets window size to screen size which triggers resize callback
- This here is unnecessary because fullscreen is not possible
- vsync ?
- should apparently disable resizable window before entering fullscreen
Borderless Fullscreen Mode
- Saves window position & size correctly
sets topmost flag & clears decorated flag but DOES NOT save the current flag state for restoring- sets window to monitor size
clears topmost & sets decorated when exiting borderless fullscreen instead of restoring to previous valuesthere is noIsWindowBorderlessFullscreen
(it is not really necessary but inconsistent)
This is just what I found right now, I could be wrong about certain things and I probably also have missed some stuff.
Related Issues:
- [rcore] Window Mode Overhaul #4147
- [rcore] Screen Size, Render Size, Monitor Size, DPI Scale consistency #4146
- [rcore]
ToggleFullscreen()
not working as expected with HighDPI mode enabled #3972 (comment) - [rcore][DESKTOP_RGFW]
ToggleFullscreen()
andToggleBorderlessWindowed()
not working on Linux ? #4140 - [rcore_desktop] Upon entering fullscreen, uses original window size #3929
Code Example
@SuperUserNameMan we can also add a new clean minimal project here