mirror of
https://github.com/glfw/glfw.git
synced 2024-11-29 15:44:35 +00:00
X11: Fix function returning before cleanup
The _glfwPlatformSetWindowFloating function would return without freeing the state array if the window was already in the requested state.
This commit is contained in:
parent
71829a0f0d
commit
071d7c0f46
@ -230,6 +230,7 @@ information on what to include when reporting a bug.
|
|||||||
reported (#1112,#1415,#1472,#1616)
|
reported (#1112,#1415,#1472,#1616)
|
||||||
- [X11] Bugfix: Some window attributes were not applied on leaving fullscreen
|
- [X11] Bugfix: Some window attributes were not applied on leaving fullscreen
|
||||||
(#1863)
|
(#1863)
|
||||||
|
- [X11] Bugfix: Changing `GLFW_FLOATING` could leak memory
|
||||||
- [Wayland] Added dynamic loading of all Wayland libraries
|
- [Wayland] Added dynamic loading of all Wayland libraries
|
||||||
- [Wayland] Removed support for `wl_shell` (#1443)
|
- [Wayland] Removed support for `wl_shell` (#1443)
|
||||||
- [Wayland] Bugfix: The `GLFW_HAND_CURSOR` shape used the wrong image (#1432)
|
- [Wayland] Bugfix: The `GLFW_HAND_CURSOR` shape used the wrong image (#1432)
|
||||||
|
@ -2671,15 +2671,15 @@ void _glfwPlatformSetWindowFloating(_GLFWwindow* window, GLFWbool enabled)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i < count)
|
if (i == count)
|
||||||
return;
|
{
|
||||||
|
|
||||||
XChangeProperty(_glfw.x11.display, window->x11.handle,
|
XChangeProperty(_glfw.x11.display, window->x11.handle,
|
||||||
_glfw.x11.NET_WM_STATE, XA_ATOM, 32,
|
_glfw.x11.NET_WM_STATE, XA_ATOM, 32,
|
||||||
PropModeAppend,
|
PropModeAppend,
|
||||||
(unsigned char*) &_glfw.x11.NET_WM_STATE_ABOVE,
|
(unsigned char*) &_glfw.x11.NET_WM_STATE_ABOVE,
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (states)
|
else if (states)
|
||||||
{
|
{
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < count; i++)
|
||||||
@ -2688,9 +2688,8 @@ void _glfwPlatformSetWindowFloating(_GLFWwindow* window, GLFWbool enabled)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == count)
|
if (i < count)
|
||||||
return;
|
{
|
||||||
|
|
||||||
states[i] = states[count - 1];
|
states[i] = states[count - 1];
|
||||||
count--;
|
count--;
|
||||||
|
|
||||||
@ -2698,6 +2697,7 @@ void _glfwPlatformSetWindowFloating(_GLFWwindow* window, GLFWbool enabled)
|
|||||||
_glfw.x11.NET_WM_STATE, XA_ATOM, 32,
|
_glfw.x11.NET_WM_STATE, XA_ATOM, 32,
|
||||||
PropModeReplace, (unsigned char*) states, count);
|
PropModeReplace, (unsigned char*) states, count);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (states)
|
if (states)
|
||||||
XFree(states);
|
XFree(states);
|
||||||
|
Loading…
Reference in New Issue
Block a user