@ -429,20 +429,35 @@ static void setIdleInhibitor(_GLFWwindow* window, GLFWbool enable) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  setFullscreen ( _GLFWwindow *  window ,  _GLFWmonitor *  monitor ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                          int  refreshRate )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Make the specified window and its video mode active on its monitor
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  acquireMonitor ( _GLFWwindow *  window )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > wl . xdg . toplevel )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        xdg_toplevel_set_fullscreen (   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            window - > wl . xdg . toplevel ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            monitor - > wl . output ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        xdg_toplevel_set_fullscreen ( window - > wl . xdg . toplevel ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    window - > monitor - > wl . output ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    setIdleInhibitor ( window ,  GLFW_TRUE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! window - > wl . decorations . serverSide )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        destroyDecorations ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Remove the window and restore the original video mode
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  releaseMonitor ( _GLFWwindow *  window )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > wl . xdg . toplevel )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        xdg_toplevel_unset_fullscreen ( window - > wl . xdg . toplevel ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    setIdleInhibitor ( window ,  GLFW_FALSE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! _glfw . wl . decorationManager )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        createDecorations ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  xdgToplevelHandleConfigure ( void *  userData ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       struct  xdg_toplevel *  toplevel ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                       int32_t  width ,   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -495,16 +510,13 @@ static void xdgToplevelHandleConfigure(void* userData, 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        _glfwInputWindowDamage ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > wl . wasFullscreen  & &  window - > autoIconify )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > wl . activated  & &  ! activated )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! activated  | |  ! fullscreen )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( window - > monitor  & &  window - > autoIconify )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            _glfwIconifyWindowWayland ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            window - > wl . wasFullscreen  =  GLFW_FALSE ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( fullscreen  & &  activated )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					         window - > wl . wasFullscreen  =  GLFW_TRUE ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > wl . activated  =  activated ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  xdgToplevelHandleClose ( void *  userData ,  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1896,14 +1908,12 @@ void _glfwRestoreWindowWayland(_GLFWwindow* window) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > wl . xdg . toplevel )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( window - > monitor )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            xdg_toplevel_unset_fullscreen ( window - > wl . xdg . toplevel ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( window - > wl . maximized )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            xdg_toplevel_unset_maximized ( window - > wl . xdg . toplevel ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // There is no way to unset minimized, or even to know if we are
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // minimized, so there is nothing to do in this case.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    _glfwInputWindowMonitor ( window ,  NULL ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > wl . maximized  =  GLFW_FALSE ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1959,19 +1969,23 @@ void _glfwSetWindowMonitorWayland(_GLFWwindow* window, 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                  int  width ,  int  height ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                  int  refreshRate )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( monitor )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        setFullscreen ( window ,  monitor ,  refreshRate ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > monitor  = =  monitor )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( window - > wl . xdg . toplevel )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            xdg_toplevel_unset_fullscreen ( window - > wl . xdg . toplevel ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        setIdleInhibitor ( window ,  GLFW_FALSE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! _glfw . wl . decorationManager )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            createDecorations ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! monitor )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            _glfwSetWindowSizeWayland ( window ,  width ,  height ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > monitor )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        releaseMonitor ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    _glfwInputWindowMonitor ( window ,  monitor ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > monitor )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        acquireMonitor ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        _glfwSetWindowSizeWayland ( window ,  width ,  height ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					GLFWbool  _glfwWindowFocusedWayland ( _GLFWwindow *  window )