@ -4338,7 +4338,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
SetWindowConditionAllowFlags ( window , ImGuiCond_Appearing , true ) ;
// Parent window is latched only on the first call to Begin() of the frame, so further append-calls can be done from a different window stack
ImGuiWindow * parent_window = first_begin_of_the_frame ? ( ( flags & ( ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup ) ) & & ! g . CurrentWindowStack . empty ( ) ? g . CurrentWindowStack . back ( ) : NULL ) : window - > ParentWindow ;
ImGuiWindow * parent_window_in_stack = g . CurrentWindowStack . empty ( ) ? NULL : g . CurrentWindowStack . back ( ) ;
ImGuiWindow * parent_window = first_begin_of_the_frame ? ( ( flags & ( ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup ) ) ? parent_window_in_stack : NULL ) : window - > ParentWindow ;
IM_ASSERT ( parent_window ! = NULL | | ! ( flags & ImGuiWindowFlags_ChildWindow ) ) ;
// Add to stack
@ -4559,7 +4560,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
// This is how we end up with child menus appearing (most-commonly) on the right of the parent menu.
IM_ASSERT ( window_pos_set_by_api ) ;
float horizontal_overlap = style . ItemSpacing . x ; // We want some overlap to convey the relative depth of each popup (currently the amount of overlap it is hard-coded to style.ItemSpacing.x, may need to introduce another style value).
ImGuiWindow * parent_menu = g. CurrentWindowStack [ g . CurrentWindowStack . Size - 2 ] ;
ImGuiWindow * parent_menu = parent_window_in_stack ;
ImRect rect_to_avoid ;
if ( parent_menu - > DC . MenuBarAppending )
rect_to_avoid = ImRect ( - FLT_MAX , parent_menu - > Pos . y + parent_menu - > TitleBarHeight ( ) , FLT_MAX , parent_menu - > Pos . y + parent_menu - > TitleBarHeight ( ) + parent_menu - > MenuBarHeight ( ) ) ;