Fix NET_WM_STATE clobbering at creation
This commit is contained in:
parent
6fcedb5396
commit
211bdab51f
@ -464,32 +464,32 @@ static GLFWbool createWindow(_GLFWwindow* window,
|
||||
sizeof(hints) / sizeof(long));
|
||||
}
|
||||
|
||||
if (_glfw.x11.NET_WM_STATE && !window->monitor)
|
||||
{
|
||||
Atom states[3];
|
||||
int count = 0;
|
||||
|
||||
if (wndconfig->floating)
|
||||
{
|
||||
if (_glfw.x11.NET_WM_STATE && _glfw.x11.NET_WM_STATE_ABOVE)
|
||||
{
|
||||
Atom value = _glfw.x11.NET_WM_STATE_ABOVE;
|
||||
XChangeProperty(_glfw.x11.display, window->x11.handle,
|
||||
_glfw.x11.NET_WM_STATE, XA_ATOM, 32,
|
||||
PropModeReplace, (unsigned char*) &value, 1);
|
||||
}
|
||||
if (_glfw.x11.NET_WM_STATE_ABOVE)
|
||||
states[count++] = _glfw.x11.NET_WM_STATE_ABOVE;
|
||||
}
|
||||
|
||||
if (wndconfig->maximized && !window->monitor)
|
||||
if (wndconfig->maximized)
|
||||
{
|
||||
if (_glfw.x11.NET_WM_STATE &&
|
||||
_glfw.x11.NET_WM_STATE_MAXIMIZED_VERT &&
|
||||
if (_glfw.x11.NET_WM_STATE_MAXIMIZED_VERT &&
|
||||
_glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ)
|
||||
{
|
||||
const Atom states[2] =
|
||||
{
|
||||
_glfw.x11.NET_WM_STATE_MAXIMIZED_VERT,
|
||||
_glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ
|
||||
};
|
||||
states[count++] = _glfw.x11.NET_WM_STATE_MAXIMIZED_VERT;
|
||||
states[count++] = _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ;
|
||||
}
|
||||
}
|
||||
|
||||
if (count)
|
||||
{
|
||||
XChangeProperty(_glfw.x11.display, window->x11.handle,
|
||||
_glfw.x11.NET_WM_STATE, XA_ATOM, 32,
|
||||
PropModeReplace, (unsigned char*) &states, 2);
|
||||
PropModeReplace, (unsigned char*) &states, count);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user