diff --git a/src/x11_window.c b/src/x11_window.c index 4d1af540..b34686d5 100644 --- a/src/x11_window.c +++ b/src/x11_window.c @@ -1010,20 +1010,6 @@ void _glfwPlatformGetWindowSize(_GLFWwindow* window, int* width, int* height) void _glfwPlatformSetWindowSize(_GLFWwindow* window, int width, int height) { - if (!window->resizable) - { - // Update window size restrictions to match new window size - - XSizeHints* hints = XAllocSizeHints(); - - hints->flags |= (PMinSize | PMaxSize); - hints->min_width = hints->max_width = width; - hints->min_height = hints->max_height = height; - - XSetWMNormalHints(_glfw.x11.display, window->x11.handle, hints); - XFree(hints); - } - if (window->monitor) { _glfwSetVideoMode(window->monitor, &window->videoMode); @@ -1037,7 +1023,23 @@ void _glfwPlatformSetWindowSize(_GLFWwindow* window, int width, int height) } } else + { + if (!window->resizable) + { + // Update window size restrictions to match new window size + + XSizeHints* hints = XAllocSizeHints(); + + hints->flags |= (PMinSize | PMaxSize); + hints->min_width = hints->max_width = width; + hints->min_height = hints->max_height = height; + + XSetWMNormalHints(_glfw.x11.display, window->x11.handle, hints); + XFree(hints); + } + XResizeWindow(_glfw.x11.display, window->x11.handle, width, height); + } XFlush(_glfw.x11.display); }