mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 13:04:35 +00:00
Wayland: Fix maximized state lost while hidden
If a window was created as maximized, or created as hidden and then
iconified or maximized before first being shown, that state was lost and
the window was shown as restored.
(cherry picked from commit 77819c0c54
)
This commit is contained in:
parent
e79d6fe40a
commit
a0259b9426
@ -176,6 +176,8 @@ information on what to include when reporting a bug.
|
|||||||
scale changed
|
scale changed
|
||||||
- [Wayland] Bugfix: `glfwSetWindowAspectRatio` reported an error instead of
|
- [Wayland] Bugfix: `glfwSetWindowAspectRatio` reported an error instead of
|
||||||
applying the specified ratio
|
applying the specified ratio
|
||||||
|
- [Wayland] Bugfix: `GLFW_MAXIMIZED` window hint had no effect
|
||||||
|
- [Wayland] Bugfix: `glfwRestoreWindow` had no effect before first show
|
||||||
|
|
||||||
|
|
||||||
## Contact
|
## Contact
|
||||||
|
@ -745,6 +745,8 @@ static GLFWbool createNativeSurface(_GLFWwindow* window,
|
|||||||
window->wl.scale = 1;
|
window->wl.scale = 1;
|
||||||
window->wl.title = _glfw_strdup(wndconfig->title);
|
window->wl.title = _glfw_strdup(wndconfig->title);
|
||||||
|
|
||||||
|
window->wl.maximized = wndconfig->maximized;
|
||||||
|
|
||||||
window->wl.transparent = fbconfig->transparent;
|
window->wl.transparent = fbconfig->transparent;
|
||||||
if (!window->wl.transparent)
|
if (!window->wl.transparent)
|
||||||
setOpaqueRegion(window);
|
setOpaqueRegion(window);
|
||||||
@ -2068,10 +2070,12 @@ void _glfwPlatformRestoreWindow(_GLFWwindow* window)
|
|||||||
{
|
{
|
||||||
// We assume we are not minimized and acto only on maximization
|
// We assume we are not minimized and acto only on maximization
|
||||||
|
|
||||||
if (window->wl.xdg.toplevel)
|
|
||||||
{
|
|
||||||
if (window->wl.maximized)
|
if (window->wl.maximized)
|
||||||
|
{
|
||||||
|
if (window->wl.xdg.toplevel)
|
||||||
xdg_toplevel_unset_maximized(window->wl.xdg.toplevel);
|
xdg_toplevel_unset_maximized(window->wl.xdg.toplevel);
|
||||||
|
else
|
||||||
|
window->wl.maximized = GLFW_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2080,6 +2084,8 @@ void _glfwPlatformMaximizeWindow(_GLFWwindow* window)
|
|||||||
{
|
{
|
||||||
if (window->wl.xdg.toplevel)
|
if (window->wl.xdg.toplevel)
|
||||||
xdg_toplevel_set_maximized(window->wl.xdg.toplevel);
|
xdg_toplevel_set_maximized(window->wl.xdg.toplevel);
|
||||||
|
else
|
||||||
|
window->wl.maximized = GLFW_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _glfwPlatformShowWindow(_GLFWwindow* window)
|
void _glfwPlatformShowWindow(_GLFWwindow* window)
|
||||||
|
Loading…
Reference in New Issue
Block a user