@ -3828,15 +3828,13 @@ bool ImGui::BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags)
return false ;
return false ;
}
}
ImGuiWindowFlags flags = extra_flags | ImGuiWindowFlags_Popup | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings ;
char name [ 20 ] ;
char name [ 20 ] ;
if ( flags & ImGuiWindowFlags_ChildMenu )
if ( extra_flags & ImGuiWindowFlags_ChildMenu )
ImFormatString ( name , IM_ARRAYSIZE ( name ) , " ##Menu_%02d " , g . CurrentPopupStack . Size ) ; // Recycle windows based on depth
ImFormatString ( name , IM_ARRAYSIZE ( name ) , " ##Menu_%02d " , g . CurrentPopupStack . Size ) ; // Recycle windows based on depth
else
else
ImFormatString ( name , IM_ARRAYSIZE ( name ) , " ##Popup_%08x " , id ) ; // Not recycling, so we can close/open during the same frame
ImFormatString ( name , IM_ARRAYSIZE ( name ) , " ##Popup_%08x " , id ) ; // Not recycling, so we can close/open during the same frame
bool is_open = Begin ( name , NULL , flags ) ;
bool is_open = Begin ( name , NULL , extra_ flags | ImGuiWindowFlags_Popup ) ;
if ( ! is_open ) // NB: Begin can return false when the popup is completely clipped (e.g. zero size display)
if ( ! is_open ) // NB: Begin can return false when the popup is completely clipped (e.g. zero size display)
EndPopup ( ) ;
EndPopup ( ) ;
@ -3851,7 +3849,7 @@ bool ImGui::BeginPopup(const char* str_id)
ClearSetNextWindowData ( ) ; // We behave like Begin() and need to consume those values
ClearSetNextWindowData ( ) ; // We behave like Begin() and need to consume those values
return false ;
return false ;
}
}
return BeginPopupEx ( g . CurrentWindow - > GetID ( str_id ) , ImGuiWindowFlags_AlwaysAutoResize ) ;
return BeginPopupEx ( g . CurrentWindow - > GetID ( str_id ) , ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings ) ;
}
}
bool ImGui : : IsPopupOpen ( ImGuiID id )
bool ImGui : : IsPopupOpen ( ImGuiID id )
@ -3926,7 +3924,7 @@ bool ImGui::BeginPopupContextItem(const char* str_id, int mouse_button)
if ( IsMouseClicked ( mouse_button ) )
if ( IsMouseClicked ( mouse_button ) )
if ( IsItemHovered ( ImGuiHoveredFlags_AllowWhenBlockedByPopup ) )
if ( IsItemHovered ( ImGuiHoveredFlags_AllowWhenBlockedByPopup ) )
OpenPopupEx ( id , true ) ;
OpenPopupEx ( id , true ) ;
return BeginPopupEx ( id , ImGuiWindowFlags_AlwaysAutoResize ) ;
return BeginPopupEx ( id , ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings ) ;
}
}
bool ImGui : : BeginPopupContextWindow ( const char * str_id , int mouse_button , bool also_over_items )
bool ImGui : : BeginPopupContextWindow ( const char * str_id , int mouse_button , bool also_over_items )
@ -3938,7 +3936,7 @@ bool ImGui::BeginPopupContextWindow(const char* str_id, int mouse_button, bool a
if ( IsWindowHovered ( ImGuiHoveredFlags_AllowWhenBlockedByPopup ) )
if ( IsWindowHovered ( ImGuiHoveredFlags_AllowWhenBlockedByPopup ) )
if ( also_over_items | | ! IsAnyItemHovered ( ) )
if ( also_over_items | | ! IsAnyItemHovered ( ) )
OpenPopupEx ( id , true ) ;
OpenPopupEx ( id , true ) ;
return BeginPopupEx ( id , ImGuiWindowFlags_AlwaysAutoResize ) ;
return BeginPopupEx ( id , ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings ) ;
}
}
bool ImGui : : BeginPopupContextVoid ( const char * str_id , int mouse_button )
bool ImGui : : BeginPopupContextVoid ( const char * str_id , int mouse_button )
@ -3948,7 +3946,7 @@ bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button)
ImGuiID id = GImGui - > CurrentWindow - > GetID ( str_id ) ;
ImGuiID id = GImGui - > CurrentWindow - > GetID ( str_id ) ;
if ( ! IsAnyWindowHovered ( ) & & IsMouseClicked ( mouse_button ) )
if ( ! IsAnyWindowHovered ( ) & & IsMouseClicked ( mouse_button ) )
OpenPopupEx ( id , true ) ;
OpenPopupEx ( id , true ) ;
return BeginPopupEx ( id , ImGuiWindowFlags_AlwaysAutoResize ) ;
return BeginPopupEx ( id , ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings ) ;
}
}
static bool BeginChildEx ( const char * name , ImGuiID id , const ImVec2 & size_arg , bool border , ImGuiWindowFlags extra_flags )
static bool BeginChildEx ( const char * name , ImGuiID id , const ImVec2 & size_arg , bool border , ImGuiWindowFlags extra_flags )
@ -9754,7 +9752,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled)
if ( menu_is_open )
if ( menu_is_open )
{
{
SetNextWindowPos ( popup_pos , ImGuiCond_Always ) ;
SetNextWindowPos ( popup_pos , ImGuiCond_Always ) ;
ImGuiWindowFlags flags = ImGuiWindowFlags_AlwaysAutoResize | ( ( window - > Flags & ( ImGuiWindowFlags_Popup | ImGuiWindowFlags_ChildMenu ) ) ? ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_ChildWindow : ImGuiWindowFlags_ChildMenu ) ;
ImGuiWindowFlags flags = ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings | ( ( window - > Flags & ( ImGuiWindowFlags_Popup | ImGuiWindowFlags_ChildMenu ) ) ? ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_ChildWindow : ImGuiWindowFlags_ChildMenu ) ;
menu_is_open = BeginPopupEx ( id , flags ) ; // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display)
menu_is_open = BeginPopupEx ( id , flags ) ; // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display)
}
}