Wayland: Fix toggling of server-side decorations
This is a temporary local fix to have updates to GLFW_DECORATED mostly work as intended. The whole decoration state machine needs to be restructured, but not by this commit.
This commit is contained in:
parent
c28d420060
commit
229d628ec4
@ -346,6 +346,8 @@ information on what to include when reporting a bug.
|
|||||||
- [Wayland] Bugfix: Manual resizing with fallback decorations behaved erratically
|
- [Wayland] Bugfix: Manual resizing with fallback decorations behaved erratically
|
||||||
(#1991,#2115,#2127)
|
(#1991,#2115,#2127)
|
||||||
- [Wayland] Bugfix: Size limits included frame size for fallback decorations
|
- [Wayland] Bugfix: Size limits included frame size for fallback decorations
|
||||||
|
- [Wayland] Bugfix: Updating `GLFW_DECORATED` had no effect on server-side
|
||||||
|
decorations
|
||||||
- [POSIX] Removed use of deprecated function `gettimeofday`
|
- [POSIX] Removed use of deprecated function `gettimeofday`
|
||||||
- [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled
|
- [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled
|
||||||
- [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072)
|
- [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072)
|
||||||
|
@ -2098,10 +2098,24 @@ void _glfwSetWindowResizableWayland(_GLFWwindow* window, GLFWbool enabled)
|
|||||||
|
|
||||||
void _glfwSetWindowDecoratedWayland(_GLFWwindow* window, GLFWbool enabled)
|
void _glfwSetWindowDecoratedWayland(_GLFWwindow* window, GLFWbool enabled)
|
||||||
{
|
{
|
||||||
if (enabled)
|
if (window->wl.xdg.decoration)
|
||||||
createDecorations(window);
|
{
|
||||||
|
uint32_t mode;
|
||||||
|
|
||||||
|
if (enabled)
|
||||||
|
mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE;
|
||||||
|
else
|
||||||
|
mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE;
|
||||||
|
|
||||||
|
zxdg_toplevel_decoration_v1_set_mode(window->wl.xdg.decoration, mode);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
destroyDecorations(window);
|
{
|
||||||
|
if (enabled)
|
||||||
|
createDecorations(window);
|
||||||
|
else
|
||||||
|
destroyDecorations(window);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _glfwSetWindowFloatingWayland(_GLFWwindow* window, GLFWbool enabled)
|
void _glfwSetWindowFloatingWayland(_GLFWwindow* window, GLFWbool enabled)
|
||||||
|
Loading…
Reference in New Issue
Block a user