@ -196,7 +196,7 @@ void ImGui_ImplGlfw_Shutdown() 
			
		
	
		
		
			
				
					
					    g_ClientApi  =  GlfwClientApi_Unknown ;      g_ClientApi  =  GlfwClientApi_Unknown ;   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  void  ImGui_ImplGlfw_UpdateMouse ( ) static  void  ImGui_ImplGlfw_UpdateMousePosAndButtons  ( )  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					{ {  
			
		
	
		
		
			
				
					
					    ImGuiIO &  io  =  ImGui : : GetIO ( ) ;      ImGuiIO &  io  =  ImGui : : GetIO ( ) ;   
			
		
	
		
		
			
				
					
					    const  ImVec2  mouse_pos_backup  =  io . MousePos ;      const  ImVec2  mouse_pos_backup  =  io . MousePos ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -241,27 +241,33 @@ static void ImGui_ImplGlfw_UpdateMouse() 
			
		
	
		
		
			
				
					
					            io . MouseHoveredViewport  =  viewport - > ID ;              io . MouseHoveredViewport  =  viewport - > ID ;   
			
		
	
		
		
			
				
					
					# endif # endif  
			
		
	
		
		
			
				
					
					    }      }   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    // Update OS/hardware mouse cursor if imgui isn't drawing a software cursor
  static  void  ImGui_ImplGlfw_UpdateMouseCursor ( )  
			
				
				
			
		
	
		
		
			
				
					
					    // FIXME-PLATFORM: Unfocused windows seems to fail changing the mouse cursor with GLFW 3.2, but 3.3 works here.
   
			
		
	
		
		
			
				
					
					    if  ( ( io . ConfigFlags  &  ImGuiConfigFlags_NoMouseCursorChange )  = =  0  & &  glfwGetInputMode ( g_Window ,  GLFW_CURSOR )  ! =  GLFW_CURSOR_DISABLED )   
			
		
	
		
		
	
		
		
			
				
					
					{ {  
			
		
	
		
		
			
				
					
					        ImGuiMouseCursor  cursor  =  ImGui : : GetMouseCursor ( ) ;      ImGuiIO &  io  =  ImGui : : GetIO ( ) ;   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    if  ( ( io . ConfigFlags  &  ImGuiConfigFlags_NoMouseCursorChange )  | |  glfwGetInputMode ( g_Window ,  GLFW_CURSOR )  = =  GLFW_CURSOR_DISABLED )   
			
		
	
		
		
			
				
					
					        return ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    ImGuiMouseCursor  imgui_cursor  =  ImGui : : GetMouseCursor ( ) ;   
			
		
	
		
		
			
				
					
					    ImGuiPlatformIO &  platform_io  =  ImGui : : GetPlatformIO ( ) ;   
			
		
	
		
		
			
				
					
					    for  ( int  n  =  0 ;  n  <  platform_io . Viewports . Size ;  n + + )      for  ( int  n  =  0 ;  n  <  platform_io . Viewports . Size ;  n + + )   
			
		
	
		
		
			
				
					
					    {      {   
			
		
	
		
		
			
				
					
					        GLFWwindow *  window  =  ( GLFWwindow * ) platform_io . Viewports [ n ] - > PlatformHandle ;          GLFWwindow *  window  =  ( GLFWwindow * ) platform_io . Viewports [ n ] - > PlatformHandle ;   
			
		
	
		
		
			
				
					
					            if  ( io . MouseDrawCursor  | |  cursor  = =  ImGuiMouseCursor_None )          if  ( imgui_cursor  = =  ImGuiMouseCursor_None  | |  io . MouseDrawCursor  )   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        {          {   
			
		
	
		
		
			
				
					
					            // Hide OS mouse cursor if imgui is drawing it or if it wants no cursor
   
			
		
	
		
		
			
				
					
					            glfwSetInputMode ( window ,  GLFW_CURSOR ,  GLFW_CURSOR_HIDDEN ) ;              glfwSetInputMode ( window ,  GLFW_CURSOR ,  GLFW_CURSOR_HIDDEN ) ;   
			
		
	
		
		
			
				
					
					        }          }   
			
		
	
		
		
			
				
					
					        else          else   
			
		
	
		
		
			
				
					
					        {          {   
			
		
	
		
		
			
				
					
					                glfwSetCursor ( window ,  g_MouseCursors [ cursor ]  ?  g_MouseCursors [ cursor ]  :  g_MouseCursors [ ImGuiMouseCursor_Arrow ] ) ;              // Show OS mouse cursor
   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					            // FIXME-PLATFORM: Unfocused windows seems to fail changing the mouse cursor with GLFW 3.2, but 3.3 works here.
   
			
		
	
		
		
			
				
					
					            glfwSetCursor ( window ,  g_MouseCursors [ imgui_cursor ]  ?  g_MouseCursors [ imgui_cursor ]  :  g_MouseCursors [ ImGuiMouseCursor_Arrow ] ) ;   
			
		
	
		
		
			
				
					
					            glfwSetInputMode ( window ,  GLFW_CURSOR ,  GLFW_CURSOR_NORMAL ) ;              glfwSetInputMode ( window ,  GLFW_CURSOR ,  GLFW_CURSOR_NORMAL ) ;   
			
		
	
		
		
			
				
					
					        }          }   
			
		
	
		
		
			
				
					
					    }      }   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  ImGui_ImplGlfw_NewFrame ( ) void  ImGui_ImplGlfw_NewFrame ( )  
			
		
	
		
		
			
				
					
					{ {  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -283,7 +289,8 @@ void ImGui_ImplGlfw_NewFrame() 
			
		
	
		
		
			
				
					
					    io . DeltaTime  =  g_Time  >  0.0  ?  ( float ) ( current_time  -  g_Time )  :  ( float ) ( 1.0f / 60.0f ) ;      io . DeltaTime  =  g_Time  >  0.0  ?  ( float ) ( current_time  -  g_Time )  :  ( float ) ( 1.0f / 60.0f ) ;   
			
		
	
		
		
			
				
					
					    g_Time  =  current_time ;      g_Time  =  current_time ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    ImGui_ImplGlfw_UpdateMouse ( ) ;      ImGui_ImplGlfw_UpdateMousePosAndButtons ( ) ;   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ImGui_ImplGlfw_UpdateMouseCursor ( ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    // Gamepad navigation mapping [BETA]
      // Gamepad navigation mapping [BETA]
   
			
		
	
		
		
			
				
					
					    memset ( io . NavInputs ,  0 ,  sizeof ( io . NavInputs ) ) ;      memset ( io . NavInputs ,  0 ,  sizeof ( io . NavInputs ) ) ;