mirror of
https://github.com/glfw/glfw.git
synced 2024-11-26 20:11:58 +00:00
wayland: Implement maximized state
This commit is contained in:
parent
71cedc6cfe
commit
e673bdc617
@ -83,6 +83,7 @@ typedef struct _GLFWwindowWayland
|
|||||||
{
|
{
|
||||||
int width, height;
|
int width, height;
|
||||||
GLFWbool visible;
|
GLFWbool visible;
|
||||||
|
GLFWbool maximized;
|
||||||
struct wl_surface* surface;
|
struct wl_surface* surface;
|
||||||
struct wl_egl_window* native;
|
struct wl_egl_window* native;
|
||||||
struct wl_shell_surface* shell_surface;
|
struct wl_shell_surface* shell_surface;
|
||||||
|
@ -222,6 +222,10 @@ static GLFWbool createShellSurface(_GLFWwindow* window)
|
|||||||
0,
|
0,
|
||||||
window->monitor->wl.output);
|
window->monitor->wl.output);
|
||||||
}
|
}
|
||||||
|
else if (window->wl.maximized)
|
||||||
|
{
|
||||||
|
wl_shell_surface_set_maximized(window->wl.shell_surface, NULL);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wl_shell_surface_set_toplevel(window->wl.shell_surface);
|
wl_shell_surface_set_toplevel(window->wl.shell_surface);
|
||||||
@ -516,14 +520,27 @@ void _glfwPlatformIconifyWindow(_GLFWwindow* window)
|
|||||||
|
|
||||||
void _glfwPlatformRestoreWindow(_GLFWwindow* window)
|
void _glfwPlatformRestoreWindow(_GLFWwindow* window)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO: also do the same for iconified.
|
||||||
fprintf(stderr, "_glfwPlatformRestoreWindow not implemented yet\n");
|
if (window->monitor || window->wl.maximized)
|
||||||
|
{
|
||||||
|
if (window->wl.shell_surface)
|
||||||
|
wl_shell_surface_set_toplevel(window->wl.shell_surface);
|
||||||
|
|
||||||
|
window->wl.maximized = GLFW_FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _glfwPlatformMaximizeWindow(_GLFWwindow* window)
|
void _glfwPlatformMaximizeWindow(_GLFWwindow* window)
|
||||||
{
|
{
|
||||||
// TODO
|
if (!window->monitor && !window->wl.maximized)
|
||||||
fprintf(stderr, "_glfwPlatformMaximizeWindow not implemented yet\n");
|
{
|
||||||
|
if (window->wl.shell_surface)
|
||||||
|
{
|
||||||
|
// Let the compositor select the best output.
|
||||||
|
wl_shell_surface_set_maximized(window->wl.shell_surface, NULL);
|
||||||
|
}
|
||||||
|
window->wl.maximized = GLFW_TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _glfwPlatformShowWindow(_GLFWwindow* window)
|
void _glfwPlatformShowWindow(_GLFWwindow* window)
|
||||||
@ -592,8 +609,7 @@ int _glfwPlatformWindowVisible(_GLFWwindow* window)
|
|||||||
|
|
||||||
int _glfwPlatformWindowMaximized(_GLFWwindow* window)
|
int _glfwPlatformWindowMaximized(_GLFWwindow* window)
|
||||||
{
|
{
|
||||||
// TODO
|
return window->wl.maximized;
|
||||||
return GLFW_FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _glfwPlatformPollEvents(void)
|
void _glfwPlatformPollEvents(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user