@ -12627,28 +12627,33 @@ static void ImGui::NavUpdateWindowing() 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    }   
					 
					 
					 
					    }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    // Keyboard: Press and Release ALT to toggle menu layer
   
					 
					 
					 
					    // Keyboard: Press and Release ALT to toggle menu layer
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    // - Testing that only Alt is tested prevents Alt+Shift or AltGR from toggling menu layer.
   
					 
					 
					 
					    const  ImGuiKey  windowing_toggle_keys [ ]  =  {  ImGuiKey_LeftAlt ,  ImGuiKey_RightAlt  } ;   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    // - AltGR is normally Alt+Ctrl but we can't reliably detect it (not all backends/systems/layout emit it as Alt+Ctrl). But even on keyboards without AltGR we don't want Alt+Ctrl to open menu anyway.
   
					 
					 
					 
					    for  ( ImGuiKey  windowing_toggle_key  :  windowing_toggle_keys )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiMod_Alt ,  ImGuiKeyOwner_None ) )   
					 
					 
					 
					         if  ( nav_keyboard_active  & &  IsKeyPressed ( windowing_toggle_key ,  ImGuiKeyOwner_None ) )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        {   
					 
					 
					 
					        {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            g . NavWindowingToggleLayer  =  true ;   
					 
					 
					 
					            g . NavWindowingToggleLayer  =  true ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            g . NavWindowingToggleKey  =  windowing_toggle_key ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            g . NavInputSource  =  ImGuiInputSource_Keyboard ;   
					 
					 
					 
					            g . NavInputSource  =  ImGuiInputSource_Keyboard ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            break ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        }   
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( g . NavWindowingToggleLayer  & &  g . NavInputSource  = =  ImGuiInputSource_Keyboard )   
					 
					 
					 
					    if  ( g . NavWindowingToggleLayer  & &  g . NavInputSource  = =  ImGuiInputSource_Keyboard )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    {   
					 
					 
					 
					    {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // We cancel toggling nav layer when any text has been typed (generally while holding Alt). (See #370)
   
					 
					 
					 
					        // We cancel toggling nav layer when any text has been typed (generally while holding Alt). (See #370)
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // We cancel toggling nav layer when other modifiers are pressed. (See #4439)
   
					 
					 
					 
					        // We cancel toggling nav layer when other modifiers are pressed. (See #4439)
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        // - AltGR is Alt+Ctrl on some layout but we can't reliably detect it (not all backends/systems/layout emit it as Alt+Ctrl).
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // We cancel toggling nav layer if an owner has claimed the key.
   
					 
					 
					 
					        // We cancel toggling nav layer if an owner has claimed the key.
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( io . InputQueueCharacters . Size  >  0  | |  io . KeyCtrl  | |  io . KeyShift  | |  io . KeySuper  | |  TestKeyOwner ( ImGuiMod_Alt ,  ImGuiKeyOwner_None )  = =  false )   
					 
					 
					 
					        if  ( io . InputQueueCharacters . Size  >  0  | |  io . KeyCtrl  | |  io . KeyShift  | |  io . KeySuper )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            g . NavWindowingToggleLayer  =  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        if  ( TestKeyOwner ( g . NavWindowingToggleKey ,  ImGuiKeyOwner_None )  = =  false  | |  TestKeyOwner ( ImGuiMod_Alt ,  ImGuiKeyOwner_None )  = =  false )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            g . NavWindowingToggleLayer  =  false ;   
					 
					 
					 
					            g . NavWindowingToggleLayer  =  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // Apply layer toggle on release
   
					 
					 
					 
					        // Apply layer toggle on Alt  release
   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        // Important: as before version <18314 we lacked an explicit IO event for focus gain/loss, we also compare mouse validity to detect old backends clearing mouse pos on focus loss.
   
					 
					 
					 
					        // Important: as before version <18314 we lacked an explicit IO event for focus gain/loss, we also compare mouse validity to detect old backends clearing mouse pos on focus loss.
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( IsKeyReleased ( ImGuiMod_Alt )  & &  g . NavWindowingToggleLayer )   
					 
					 
					 
					        if  ( IsKeyReleased ( g . NavWindowingToggleKey )  & &  g . NavWindowingToggleLayer )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					            if  ( g . ActiveId  = =  0  | |  g . ActiveIdAllowOverlap )   
					 
					 
					 
					            if  ( g . ActiveId  = =  0  | |  g . ActiveIdAllowOverlap )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                if  ( IsMousePosValid ( & io . MousePos )  = =  IsMousePosValid ( & io . MousePosPrev ) )   
					 
					 
					 
					                if  ( IsMousePosValid ( & io . MousePos )  = =  IsMousePosValid ( & io . MousePosPrev ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                    apply_toggle_layer  =  true ;   
					 
					 
					 
					                    apply_toggle_layer  =  true ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( ! IsKeyDown ( ImGuiMod_Alt ) )   
					 
					 
					 
					        if  ( ! IsKeyDown ( g . NavWindowingToggleKey ) )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					            g . NavWindowingToggleLayer  =  false ;   
					 
					 
					 
					            g . NavWindowingToggleLayer  =  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    }   
					 
					 
					 
					    }