|
|
|
@ -270,6 +270,11 @@ static void updateNormalHints(_GLFWwindow* window, int width, int height) |
|
|
|
|
{ |
|
|
|
|
XSizeHints* hints = XAllocSizeHints(); |
|
|
|
|
|
|
|
|
|
long supplied; |
|
|
|
|
XGetWMNormalHints(_glfw.x11.display, window->x11.handle, hints, &supplied); |
|
|
|
|
|
|
|
|
|
hints->flags &= ~(PMinSize | PMaxSize | PAspect); |
|
|
|
|
|
|
|
|
|
if (!window->monitor) |
|
|
|
|
{ |
|
|
|
|
if (window->resizable) |
|
|
|
@ -306,9 +311,6 @@ static void updateNormalHints(_GLFWwindow* window, int width, int height) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
hints->flags |= PWinGravity; |
|
|
|
|
hints->win_gravity = StaticGravity; |
|
|
|
|
|
|
|
|
|
XSetWMNormalHints(_glfw.x11.display, window->x11.handle, hints); |
|
|
|
|
XFree(hints); |
|
|
|
|
} |
|
|
|
@ -696,7 +698,28 @@ static GLFWbool createNativeWindow(_GLFWwindow* window, |
|
|
|
|
XFree(hints); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
updateNormalHints(window, width, height); |
|
|
|
|
// Set ICCCM WM_NORMAL_HINTS property
|
|
|
|
|
{ |
|
|
|
|
XSizeHints* hints = XAllocSizeHints(); |
|
|
|
|
if (!hints) |
|
|
|
|
{ |
|
|
|
|
_glfwInputError(GLFW_OUT_OF_MEMORY, "X11: Failed to allocate size hints"); |
|
|
|
|
return GLFW_FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!wndconfig->resizable) |
|
|
|
|
{ |
|
|
|
|
hints->flags |= (PMinSize | PMaxSize); |
|
|
|
|
hints->min_width = hints->max_width = width; |
|
|
|
|
hints->min_height = hints->max_height = height; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
hints->flags |= PWinGravity; |
|
|
|
|
hints->win_gravity = StaticGravity; |
|
|
|
|
|
|
|
|
|
XSetWMNormalHints(_glfw.x11.display, window->x11.handle, hints); |
|
|
|
|
XFree(hints); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Set ICCCM WM_CLASS property
|
|
|
|
|
{ |
|
|
|
|