@ -434,6 +434,11 @@ CODE 
			
		
	
		
			
				
					                       -  inputs  ( internals ) :  Shortcut ( ) ,  SetShortcutRouting ( ) :  swapped  last  two  parameters  order  in  function  signatures :   
			
		
	
		
			
				
					                            -  old :  Shortcut ( ImGuiKeyChord  key_chord ,  ImGuiID  owner_id  =  0 ,  ImGuiInputFlags  flags  =  0 ) ;   
			
		
	
		
			
				
					                            -  new :  Shortcut ( ImGuiKeyChord  key_chord ,  ImGuiInputFlags  flags  =  0 ,  ImGuiID  owner_id  =  0 ) ;   
			
		
	
		
			
				
					                       -  inputs  ( internals ) :  owner - aware  versions  of  IsKeyPressed ( ) ,  IsKeyChordPressed ( ) ,  IsMouseClicked ( ) :  swapped  last  two  parameters  order  in  function  signatures .   
			
		
	
		
			
				
					                            -  old :  IsKeyPressed ( ImGuiKey  key ,  ImGuiID  owner_id ,  ImGuiInputFlags  flags  =  0 ) ;   
			
		
	
		
			
				
					                            -  new :  IsKeyPressed ( ImGuiKey  key ,  ImGuiInputFlags  flags ,  ImGuiID  owner_id  =  0 ) ;   
			
		
	
		
			
				
					                            -  old :  IsMouseClicked ( ImGuiMouseButton  button ,  ImGuiID  owner_id ,  ImGuiInputFlags  flags  =  0 ) ;   
			
		
	
		
			
				
					                            -  new :  IsMouseClicked ( ImGuiMouseButton  button ,  ImGuiInputFlags  flags ,  ImGuiID  owner_id  =  0 ) ;   
			
		
	
		
			
				
					                         for  various  reasons  those  changes  makes  sense .  They  are  being  made  because  making  some  of  those  API  public .   
			
		
	
		
			
				
					                         only  past  users  of  imgui_internal . h  with  the  extra  parameters  will  be  affected .  Added  asserts  for  valid  flags  in  various  functions  to  detect  _some_  misuses ,  BUT  NOT  ALL .   
			
		
	
		
			
				
					 -  2024 / 05 / 16  ( 1.90 .7 )  -  inputs :  on  macOS  X ,  Cmd  and  Ctrl  keys  are  now  automatically  swapped  by  io . AddKeyEvent ( )  as  this  naturally  align  with  how  macOS  X  uses  those  keys .   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -8749,11 +8754,11 @@ bool ImGui::IsKeyDown(ImGuiKey key, ImGuiID owner_id) 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					bool  ImGui : : IsKeyPressed ( ImGuiKey  key ,  bool  repeat )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    return  IsKeyPressed ( key ,  ImGuiKeyOwner_Any ,  repeat  ?  ImGuiInputFlags_Repeat  :  ImGuiInputFlags_None ) ;   
			
		
	
		
			
				
					    return  IsKeyPressed ( key ,  repeat  ?  ImGuiInputFlags_Repeat  :  ImGuiInputFlags_None ,  ImGuiKeyOwner_Any ) ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Important: unless legacy IsKeyPressed(ImGuiKey, bool repeat=true) which DEFAULT to repeat, this requires EXPLICIT repeat.
  
			
		
	
		
			
				
					bool  ImGui : : IsKeyPressed ( ImGuiKey  key ,  ImGuiID  owner_id ,  ImGuiInputFlags  flags  )  
			
		
	
		
			
				
					bool  ImGui : : IsKeyPressed ( ImGuiKey  key ,  ImGuiInputFlags  flags ,  ImGuiID  owner_id  )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    const  ImGuiKeyData *  key_data  =  GetKeyData ( key ) ;   
			
		
	
		
			
				
					    if  ( ! key_data - > Down )  // In theory this should already be encoded as (DownDuration < 0.0f), but testing this facilitates eating mechanism (until we finish work on key ownership)
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -8826,7 +8831,7 @@ bool ImGui::IsMouseClicked(ImGuiMouseButton button, bool repeat) 
			
		
	
		
			
				
					    return  IsMouseClicked ( button ,  ImGuiKeyOwner_Any ,  repeat  ?  ImGuiInputFlags_Repeat  :  ImGuiInputFlags_None ) ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					bool  ImGui : : IsMouseClicked ( ImGuiMouseButton  button ,  ImGuiID  owner_id ,  ImGuiInputFlags  flags  )  
			
		
	
		
			
				
					bool  ImGui : : IsMouseClicked ( ImGuiMouseButton  button ,  ImGuiInputFlags  flags ,  ImGuiID  owner_id  )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
			
				
					    IM_ASSERT ( button  > =  0  & &  button  <  IM_ARRAYSIZE ( g . IO . MouseDown ) ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -9652,7 +9657,7 @@ bool ImGui::IsKeyChordPressed(ImGuiKeyChord key_chord) 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// This is equivalent to comparing KeyMods + doing a IsKeyPressed()
  
			
		
	
		
			
				
					bool  ImGui : : IsKeyChordPressed ( ImGuiKeyChord  key_chord ,  ImGuiID  owner_id ,  ImGuiInputFlags  flags  )  
			
		
	
		
			
				
					bool  ImGui : : IsKeyChordPressed ( ImGuiKeyChord  key_chord ,  ImGuiInputFlags  flags ,  ImGuiID  owner_id  )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
			
				
					    key_chord  =  FixupKeyChord ( key_chord ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -9664,7 +9669,7 @@ bool ImGui::IsKeyChordPressed(ImGuiKeyChord key_chord, ImGuiID owner_id, ImGuiIn 
			
		
	
		
			
				
					    ImGuiKey  key  =  ( ImGuiKey ) ( key_chord  &  ~ ImGuiMod_Mask_ ) ;   
			
		
	
		
			
				
					    if  ( key  = =  ImGuiKey_None )   
			
		
	
		
			
				
					        key  =  ConvertSingleModFlagToKey ( mods ) ;   
			
		
	
		
			
				
					    if  ( ! IsKeyPressed ( key ,  owner_id ,  ( flags  &  ImGuiInputFlags_RepeatMask_ ) ) )   
			
		
	
		
			
				
					    if  ( ! IsKeyPressed ( key ,  ( flags  &  ImGuiInputFlags_RepeatMask_ ) ,  owner_id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					    return  true ;   
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -9699,7 +9704,7 @@ bool ImGui::Shortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags, ImGuiID own 
			
		
	
		
			
				
					    if  ( ( flags  &  ImGuiInputFlags_Repeat )  ! =  0  & &  ( flags  &  ImGuiInputFlags_RepeatUntilMask_ )  = =  0 )   
			
		
	
		
			
				
					        flags  | =  ImGuiInputFlags_RepeatUntilKeyModsChange ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( ! IsKeyChordPressed ( key_chord ,  owner_id ,  flags ) )   
			
		
	
		
			
				
					    if  ( ! IsKeyChordPressed ( key_chord ,  flags ,  owner_id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					    IM_ASSERT ( ( flags  &  ~ ImGuiInputFlags_SupportedByShortcut )  = =  0 ) ;  // Passing flags not supported by this function!
   
			
		
	
		
			
				
					    return  true ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12130,9 +12135,9 @@ static void ImGui::NavUpdate() 
			
		
	
		
			
				
					    if  ( g . NavId  ! =  0  & &  ! g . NavDisableHighlight  & &  ! g . NavWindowingTarget  & &  g . NavWindow  & &  ! ( g . NavWindow - > Flags  &  ImGuiWindowFlags_NoNavInputs ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        const  bool  activate_down  =  ( nav_keyboard_active  & &  IsKeyDown ( ImGuiKey_Space ,  ImGuiKeyOwner_NoOwner ) )  | |  ( nav_gamepad_active  & &  IsKeyDown ( ImGuiKey_NavGamepadActivate ,  ImGuiKeyOwner_NoOwner ) ) ;   
			
		
	
		
			
				
					        const  bool  activate_pressed  =  activate_down  & &  ( ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_Space ,  ImGuiKeyOwner_NoOwner ) )  | |  ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_NavGamepadActivate ,  ImGuiKeyOwner_NoOwner ) ) ) ;   
			
		
	
		
			
				
					        const  bool  activate_pressed  =  activate_down  & &  ( ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_Space ,  0 ,  ImGuiKeyOwner_NoOwner ) )  | |  ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_NavGamepadActivate ,  0 ,  ImGuiKeyOwner_NoOwner ) ) ) ;   
			
		
	
		
			
				
					        const  bool  input_down  =  ( nav_keyboard_active  & &  ( IsKeyDown ( ImGuiKey_Enter ,  ImGuiKeyOwner_NoOwner )  | |  IsKeyDown ( ImGuiKey_KeypadEnter ,  ImGuiKeyOwner_NoOwner ) ) )  | |  ( nav_gamepad_active  & &  IsKeyDown ( ImGuiKey_NavGamepadInput ,  ImGuiKeyOwner_NoOwner ) ) ;   
			
		
	
		
			
				
					        const  bool  input_pressed  =  input_down  & &  ( ( nav_keyboard_active  & &  ( IsKeyPressed ( ImGuiKey_Enter ,  ImGuiKeyOwner_NoOwner )  | |  IsKeyPressed ( ImGuiKey_KeypadEnter ,  ImGuiKeyOwner_NoOwner ) ) )  | |  ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_NavGamepadInput ,  ImGuiKeyOwner_NoOwner ) ) ) ;   
			
		
	
		
			
				
					        const  bool  input_pressed  =  input_down  & &  ( ( nav_keyboard_active  & &  ( IsKeyPressed ( ImGuiKey_Enter ,  0 ,  ImGuiKeyOwner_NoOwner )  | |  IsKeyPressed ( ImGuiKey_KeypadEnter ,  0 ,  ImGuiKeyOwner_NoOwner ) ) )  | |  ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_NavGamepadInput ,  0 ,  ImGuiKeyOwner_NoOwner ) ) ) ;   
			
		
	
		
			
				
					        if  ( g . ActiveId  = =  0  & &  activate_pressed )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            g . NavActivateId  =  g . NavId ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12306,10 +12311,10 @@ void ImGui::NavUpdateCreateMoveRequest() 
			
		
	
		
			
				
					        if  ( window  & &  ! g . NavWindowingTarget  & &  ! ( window - > Flags  &  ImGuiWindowFlags_NoNavInputs ) )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            const  ImGuiInputFlags  repeat_mode  =  ImGuiInputFlags_Repeat  |  ImGuiInputFlags_RepeatRateNavMove ;   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Left )   & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadLeft ,   ImGuiKeyOwner_NoOwner ,  repeat_mode ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_LeftArrow ,   ImGuiKeyOwner_NoOwner ,  repeat_mode ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Left ;  }   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Right )  & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadRight ,  ImGuiKeyOwner_NoOwner ,  repeat_mode ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_RightArrow ,  ImGuiKeyOwner_NoOwner ,  repeat_mode ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Right ;  }   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Up )     & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadUp ,     ImGuiKeyOwner_NoOwner ,  repeat_mode ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_UpArrow ,     ImGuiKeyOwner_NoOwner ,  repeat_mode ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Up ;  }   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Down )   & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadDown ,   ImGuiKeyOwner_NoOwner ,  repeat_mode ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_DownArrow ,   ImGuiKeyOwner_NoOwner ,  repeat_mode ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Down ;  }   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Left )   & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadLeft ,   repeat_mode ,  ImGuiKeyOwner_NoOwner ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_LeftArrow ,   repeat_mode ,  ImGuiKeyOwner_NoOwner ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Left ;  }   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Right )  & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadRight ,  repeat_mode ,  ImGuiKeyOwner_NoOwner ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_RightArrow ,  repeat_mode ,  ImGuiKeyOwner_NoOwner ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Right ;  }   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Up )     & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadUp ,     repeat_mode ,  ImGuiKeyOwner_NoOwner ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_UpArrow ,     repeat_mode ,  ImGuiKeyOwner_NoOwner ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Up ;  }   
			
		
	
		
			
				
					            if  ( ! IsActiveIdUsingNavDir ( ImGuiDir_Down )   & &  ( ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_GamepadDpadDown ,   repeat_mode ,  ImGuiKeyOwner_NoOwner ) )  | |  ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_DownArrow ,   repeat_mode ,  ImGuiKeyOwner_NoOwner ) ) ) )  {  g . NavMoveDir  =  ImGuiDir_Down ;  }   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					        g . NavMoveClipDir  =  g . NavMoveDir ;   
			
		
	
		
			
				
					        g . NavScoringNoClipRect  =  ImRect ( + FLT_MAX ,  + FLT_MAX ,  - FLT_MAX ,  - FLT_MAX ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12405,7 +12410,7 @@ void ImGui::NavUpdateCreateTabbingRequest() 
			
		
	
		
			
				
					    if  ( window  = =  NULL  | |  g . NavWindowingTarget  ! =  NULL  | |  ( window - > Flags  &  ImGuiWindowFlags_NoNavInputs ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  bool  tab_pressed  =  IsKeyPressed ( ImGuiKey_Tab ,  ImGuiKeyOwner_NoOwner ,  ImGuiInputFlags_Repeat  )  & &  ! g . IO . KeyCtrl  & &  ! g . IO . KeyAlt ;   
			
		
	
		
			
				
					    const  bool  tab_pressed  =  IsKeyPressed ( ImGuiKey_Tab ,  ImGuiInputFlags_Repeat ,  ImGuiKeyOwner_NoOwner  )  & &  ! g . IO . KeyCtrl  & &  ! g . IO . KeyAlt ;   
			
		
	
		
			
				
					    if  ( ! tab_pressed )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12543,7 +12548,7 @@ static void ImGui::NavUpdateCancelRequest() 
			
		
	
		
			
				
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
			
				
					    const  bool  nav_gamepad_active  =  ( g . IO . ConfigFlags  &  ImGuiConfigFlags_NavEnableGamepad )  ! =  0  & &  ( g . IO . BackendFlags  &  ImGuiBackendFlags_HasGamepad )  ! =  0 ;   
			
		
	
		
			
				
					    const  bool  nav_keyboard_active  =  ( g . IO . ConfigFlags  &  ImGuiConfigFlags_NavEnableKeyboard )  ! =  0 ;   
			
		
	
		
			
				
					    if  ( ! ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_Escape ,  ImGuiKeyOwner_NoOwner ) )  & &  ! ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_NavGamepadCancel ,  ImGuiKeyOwner_NoOwner ) ) )   
			
		
	
		
			
				
					    if  ( ! ( nav_keyboard_active  & &  IsKeyPressed ( ImGuiKey_Escape ,  0 ,  ImGuiKeyOwner_NoOwner ) )  & &  ! ( nav_gamepad_active  & &  IsKeyPressed ( ImGuiKey_NavGamepadCancel ,  0 ,  ImGuiKeyOwner_NoOwner ) ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    IMGUI_DEBUG_LOG_NAV ( " [nav] NavUpdateCancelRequest() \n " ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12594,8 +12599,8 @@ static float ImGui::NavUpdatePageUpPageDown() 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  bool  page_up_held  =  IsKeyDown ( ImGuiKey_PageUp ,  ImGuiKeyOwner_NoOwner ) ;   
			
		
	
		
			
				
					    const  bool  page_down_held  =  IsKeyDown ( ImGuiKey_PageDown ,  ImGuiKeyOwner_NoOwner ) ;   
			
		
	
		
			
				
					    const  bool  home_pressed  =  IsKeyPressed ( ImGuiKey_Home ,  ImGuiKeyOwner_NoOwner ,  ImGuiInputFlags_Repeat  ) ;   
			
		
	
		
			
				
					    const  bool  end_pressed  =  IsKeyPressed ( ImGuiKey_End ,  ImGuiKeyOwner_NoOwner ,  ImGuiInputFlags_Repeat  ) ;   
			
		
	
		
			
				
					    const  bool  home_pressed  =  IsKeyPressed ( ImGuiKey_Home ,  ImGuiInputFlags_Repeat ,  ImGuiKeyOwner_NoOwner  ) ;   
			
		
	
		
			
				
					    const  bool  end_pressed  =  IsKeyPressed ( ImGuiKey_End ,  ImGuiInputFlags_Repeat ,  ImGuiKeyOwner_NoOwner  ) ;   
			
		
	
		
			
				
					    if  ( page_up_held  = =  page_down_held  & &  home_pressed  = =  end_pressed )  // Proceed if either (not both) are pressed, otherwise early out
   
			
		
	
		
			
				
					        return  0.0f ;   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -12605,9 +12610,9 @@ static float ImGui::NavUpdatePageUpPageDown() 
			
		
	
		
			
				
					    if  ( window - > DC . NavLayersActiveMask  = =  0x00  & &  window - > DC . NavWindowHasScrollY )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        // Fallback manual-scroll when window has no navigable item
   
			
		
	
		
			
				
					        if  ( IsKeyPressed ( ImGuiKey_PageUp ,  ImGuiKeyOwner_NoOwner ,  ImGuiInputFlags_Repeat  ) )   
			
		
	
		
			
				
					        if  ( IsKeyPressed ( ImGuiKey_PageUp ,  ImGuiInputFlags_Repeat ,  ImGuiKeyOwner_NoOwner  ) )   
			
		
	
		
			
				
					            SetScrollY ( window ,  window - > Scroll . y  -  window - > InnerRect . GetHeight ( ) ) ;   
			
		
	
		
			
				
					        else  if  ( IsKeyPressed ( ImGuiKey_PageDown ,  ImGuiKeyOwner_NoOwner ,  ImGuiInputFlags_Repeat  ) )   
			
		
	
		
			
				
					        else  if  ( IsKeyPressed ( ImGuiKey_PageDown ,  ImGuiInputFlags_Repeat ,  ImGuiKeyOwner_NoOwner  ) )   
			
		
	
		
			
				
					            SetScrollY ( window ,  window - > Scroll . y  +  window - > InnerRect . GetHeight ( ) ) ;   
			
		
	
		
			
				
					        else  if  ( home_pressed )   
			
		
	
		
			
				
					            SetScrollY ( window ,  0.0f ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12802,7 +12807,7 @@ static void ImGui::NavUpdateWindowing() 
			
		
	
		
			
				
					    const  bool  nav_keyboard_active  =  ( io . ConfigFlags  &  ImGuiConfigFlags_NavEnableKeyboard )  ! =  0 ;   
			
		
	
		
			
				
					    const  bool  keyboard_next_window  =  allow_windowing  & &  g . ConfigNavWindowingKeyNext  & &  Shortcut ( g . ConfigNavWindowingKeyNext ,  ImGuiInputFlags_Repeat  |  ImGuiInputFlags_RouteAlways ,  owner_id ) ;   
			
		
	
		
			
				
					    const  bool  keyboard_prev_window  =  allow_windowing  & &  g . ConfigNavWindowingKeyPrev  & &  Shortcut ( g . ConfigNavWindowingKeyPrev ,  ImGuiInputFlags_Repeat  |  ImGuiInputFlags_RouteAlways ,  owner_id ) ;   
			
		
	
		
			
				
					    const  bool  start_windowing_with_gamepad  =  allow_windowing  & &  nav_gamepad_active  & &  ! g . NavWindowingTarget  & &  IsKeyPressed ( ImGuiKey_NavGamepadMenu ,  0 ,  ImGuiInputFlags_None ) ;   
			
		
	
		
			
				
					    const  bool  start_windowing_with_gamepad  =  allow_windowing  & &  nav_gamepad_active  & &  ! g . NavWindowingTarget  & &  IsKeyPressed ( ImGuiKey_NavGamepadMenu ,  ImGuiInputFlags_None ) ;   
			
		
	
		
			
				
					    const  bool  start_windowing_with_keyboard  =  allow_windowing  & &  ! g . NavWindowingTarget  & &  ( keyboard_next_window  | |  keyboard_prev_window ) ;  // Note: enabled even without NavEnableKeyboard!
   
			
		
	
		
			
				
					    if  ( start_windowing_with_gamepad  | |  start_windowing_with_keyboard )   
			
		
	
		
			
				
					        if  ( ImGuiWindow *  window  =  g . NavWindow  ?  g . NavWindow  :  FindWindowNavFocusable ( g . WindowsFocusOrder . Size  -  1 ,  - INT_MAX ,  - 1 ) )   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12861,7 +12866,7 @@ static void ImGui::NavUpdateWindowing() 
			
		
	
		
			
				
					    // Keyboard: Press and Release ALT to toggle menu layer
   
			
		
	
		
			
				
					    const  ImGuiKey  windowing_toggle_keys [ ]  =  {  ImGuiKey_LeftAlt ,  ImGuiKey_RightAlt  } ;   
			
		
	
		
			
				
					    for  ( ImGuiKey  windowing_toggle_key  :  windowing_toggle_keys )   
			
		
	
		
			
				
					        if  ( nav_keyboard_active  & &  IsKeyPressed ( windowing_toggle_key ,  ImGuiKeyOwner_NoOwner ) )   
			
		
	
		
			
				
					        if  ( nav_keyboard_active  & &  IsKeyPressed ( windowing_toggle_key ,  0 ,  ImGuiKeyOwner_NoOwner ) )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            g . NavWindowingToggleLayer  =  true ;   
			
		
	
		
			
				
					            g . NavWindowingToggleKey  =  windowing_toggle_key ;