@ -6575,12 +6575,16 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
hovered = true ;
hovered = true ;
if ( ! g . NavWindowingTarget & & IsNavInputDown ( ImGuiNavInput_PadActivate ) )
if ( ! g . NavWindowingTarget & & IsNavInputDown ( ImGuiNavInput_PadActivate ) )
{
{
// Set active id so it can be queried by user via IsItemActive(), etc. but don't react to it ourselves
bool nav_pressed = IsNavInputPressed ( ImGuiNavInput_PadActivate , ( flags & ImGuiButtonFlags_Repeat ) ? ImGuiNavReadMode_Repeat : ImGuiNavReadMode_Pressed ) ;
g . NavActivateId = id ;
if ( nav_pressed )
pressed = true ;
if ( nav_pressed | | g . ActiveId = = id )
{
// Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button.
g . NavActivateId = id ; // This is so SetActiveId assign a Nav source
SetActiveID ( id , window ) ;
SetActiveID ( id , window ) ;
g . ActiveIdAllowNavDirFlags = ( 1 < < ImGuiDir_Left ) | ( 1 < < ImGuiDir_Right ) | ( 1 < < ImGuiDir_Up ) | ( 1 < < ImGuiDir_Down ) ;
g . ActiveIdAllowNavDirFlags = ( 1 < < ImGuiDir_Left ) | ( 1 < < ImGuiDir_Right ) | ( 1 < < ImGuiDir_Up ) | ( 1 < < ImGuiDir_Down ) ;
if ( IsNavInputPressed ( ImGuiNavInput_PadActivate , ( flags & ImGuiButtonFlags_Repeat ) ? ImGuiNavReadMode_Repeat : ImGuiNavReadMode_Pressed ) )
}
pressed = true ;
}
}
}
}