Browse Source

[rcore] Support window flags with initialization issues

This may not be the correct approach, however this appears to work. The idea is that before modifying `CORE.Window.flags` when first creating the window we keep a copy of the flags in order to call `SetWindowState` after initialization has completed, which should behave as if `MaximizeWindow` or `MinimizeWindow`, or conceptually any other flag modifying function were called after `InitWindow`.

This pull request only performs this for the windows platform, modify as needed in the switch statement at the end for others.
pull/4837/head
Alex Anderson 2 weeks ago
committed by GitHub
parent
commit
99a9ecfaac
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
1 changed files with 6 additions and 1 deletions
  1. +6
    -1
      src/platforms/rcore_desktop_glfw.c

+ 6
- 1
src/platforms/rcore_desktop_glfw.c View File

@ -1351,6 +1351,8 @@ int InitPlatform(void)
// additionally auto iconify restores the hardware resolution of the monitor if the window that loses focus is a fullscreen window
glfwWindowHint(GLFW_AUTO_ICONIFY, 0);
// Keep flags to restore after initialization (for flags not supported on initialization)
unsigned int originalCoreWindowFlags = CORE.Window.flags;
// Check window creation flags
if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) CORE.Window.fullscreen = true;
@ -1709,7 +1711,10 @@ int InitPlatform(void)
char *glfwPlatform = "";
switch (glfwGetPlatform())
{
case GLFW_PLATFORM_WIN32: glfwPlatform = "Win32"; break;
case GLFW_PLATFORM_WIN32:
glfwPlatform = "Win32";
SetWindowState(originalCoreWindowFlags);
break;
case GLFW_PLATFORM_COCOA: glfwPlatform = "Cocoa"; break;
case GLFW_PLATFORM_WAYLAND: glfwPlatform = "Wayland"; break;
case GLFW_PLATFORM_X11: glfwPlatform = "X11"; break;

Loading…
Cancel
Save