mirror of
				https://github.com/glfw/glfw.git
				synced 2025-11-03 22:04:15 +00:00 
			
		
		
		
	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
 | 
			
		||||
   (#1991,#2115,#2127)
 | 
			
		||||
 - [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] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled
 | 
			
		||||
 - [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)
 | 
			
		||||
{
 | 
			
		||||
    if (enabled)
 | 
			
		||||
        createDecorations(window);
 | 
			
		||||
    if (window->wl.xdg.decoration)
 | 
			
		||||
    {
 | 
			
		||||
        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
 | 
			
		||||
        destroyDecorations(window);
 | 
			
		||||
    {
 | 
			
		||||
        if (enabled)
 | 
			
		||||
            createDecorations(window);
 | 
			
		||||
        else
 | 
			
		||||
            destroyDecorations(window);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void _glfwSetWindowFloatingWayland(_GLFWwindow* window, GLFWbool enabled)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user