mirror of
https://github.com/glfw/glfw.git
synced 2026-09-17 14:22:50 +00:00
Wayland: Set the correct min/max size when non-resizable
Libdecor is a thin wrapper around xdg_toplevel, and expects the same kind of information passed to it as if it was a xdg_toplevel. This includes the min/max size when non-resizable, which was set when using xdg_toplevel directly, but not when using libdecor. This fixes issues with min/max size missing when mapping a non-resizable window. Related to #2842
This commit is contained in:
committed by
Camilla Löwy
parent
e94108d9db
commit
ed6452b13c
+22
-14
@@ -986,26 +986,34 @@ static GLFWbool createLibdecorFrame(_GLFWwindow* window)
|
||||
|
||||
libdecor_frame_set_title(window->wl.libdecor.frame, window->title);
|
||||
|
||||
if (window->minwidth != GLFW_DONT_CARE &&
|
||||
window->minheight != GLFW_DONT_CARE)
|
||||
if (window->resizable)
|
||||
{
|
||||
libdecor_frame_set_min_content_size(window->wl.libdecor.frame,
|
||||
window->minwidth,
|
||||
window->minheight);
|
||||
}
|
||||
if (window->minwidth != GLFW_DONT_CARE &&
|
||||
window->minheight != GLFW_DONT_CARE)
|
||||
{
|
||||
libdecor_frame_set_min_content_size(window->wl.libdecor.frame,
|
||||
window->minwidth,
|
||||
window->minheight);
|
||||
}
|
||||
|
||||
if (window->maxwidth != GLFW_DONT_CARE &&
|
||||
window->maxheight != GLFW_DONT_CARE)
|
||||
{
|
||||
libdecor_frame_set_max_content_size(window->wl.libdecor.frame,
|
||||
window->maxwidth,
|
||||
window->maxheight);
|
||||
if (window->maxwidth != GLFW_DONT_CARE &&
|
||||
window->maxheight != GLFW_DONT_CARE)
|
||||
{
|
||||
libdecor_frame_set_max_content_size(window->wl.libdecor.frame,
|
||||
window->maxwidth,
|
||||
window->maxheight);
|
||||
}
|
||||
}
|
||||
|
||||
if (!window->resizable)
|
||||
else
|
||||
{
|
||||
libdecor_frame_unset_capabilities(window->wl.libdecor.frame,
|
||||
LIBDECOR_ACTION_RESIZE);
|
||||
libdecor_frame_set_min_content_size(window->wl.libdecor.frame,
|
||||
window->wl.width,
|
||||
window->wl.height);
|
||||
libdecor_frame_set_max_content_size(window->wl.libdecor.frame,
|
||||
window->wl.width,
|
||||
window->wl.height);
|
||||
}
|
||||
|
||||
if (window->monitor)
|
||||
|
||||
Reference in New Issue
Block a user