@ -492,6 +492,11 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
if ( ( flags & ImGuiButtonFlags_PressedOnMask_ ) = = 0 )
flags | = ImGuiButtonFlags_PressedOnDefault_ ;
// Default behavior inherited from item flags
const ImGuiItemFlags item_flags = ( g . LastItemData . ID = = id ? g . LastItemData . InFlags : g . CurrentItemFlags ) ;
if ( item_flags & ImGuiItemFlags_ButtonRepeat )
flags | = ImGuiButtonFlags_Repeat ;
ImGuiWindow * backup_hovered_window = g . HoveredWindow ;
const bool flatten_hovered_children = ( flags & ImGuiButtonFlags_FlattenChildren ) & & g . HoveredWindow & & g . HoveredWindow - > RootWindow = = window ;
if ( flatten_hovered_children )
@ -698,9 +703,6 @@ bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags
if ( ! ItemAdd ( bb , id ) )
return false ;
if ( g . LastItemData . InFlags & ImGuiItemFlags_ButtonRepeat )
flags | = ImGuiButtonFlags_Repeat ;
bool hovered , held ;
bool pressed = ButtonBehavior ( bb , id , & hovered , & held , flags ) ;
@ -777,9 +779,6 @@ bool ImGui::ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size, ImGuiBu
if ( ! ItemAdd ( bb , id ) )
return false ;
if ( g . LastItemData . InFlags & ImGuiItemFlags_ButtonRepeat )
flags | = ImGuiButtonFlags_Repeat ;
bool hovered , held ;
bool pressed = ButtonBehavior ( bb , id , & hovered , & held , flags ) ;