@ -1491,10 +1491,13 @@ void ImGui::EndTable()
}
else if ( temp_data - > UserOuterSize . x < = 0.0f )
{
// Some references for this: #7651 + tests "table_reported_size", "table_reported_size_outer" equivalent Y block
// - Checking for ImGuiTableFlags_ScrollX/ScrollY flag makes us a frame ahead when disabling those flags.
// - FIXME-TABLE: Would make sense to pre-compute expected scrollbar visibility/sizes to generally save a frame of feedback.
const float inner_content_max_x = table - > OuterRect . Min . x + table - > ColumnsAutoFitWidth ; // Slightly misleading name but used for code symmetry with inner_content_max_y
const float decoration_size = table - > TempData - > AngledHeadersExtraWidth + ( ( table - > Flags & ImGuiTableFlags_ScrollX ) ? inner_window - > ScrollbarSizes . x : 0.0f ) ;
const float decoration_size = table - > TempData - > AngledHeadersExtraWidth + ( ( table - > Flags & ImGuiTableFlags_ScrollY ) ? inner_window - > ScrollbarSizes . x : 0.0f ) ;
outer_window - > DC . IdealMaxPos . x = ImMax ( outer_window - > DC . IdealMaxPos . x , inner_content_max_x + decoration_size - temp_data - > UserOuterSize . x ) ;
outer_window - > DC . CursorMaxPos . x = ImMax ( backup_outer_max_pos . x , ImMin ( table - > OuterRect . Max . x , inner_content_max_x ) ) ;
outer_window - > DC . CursorMaxPos . x = ImMax ( backup_outer_max_pos . x , ImMin ( table - > OuterRect . Max . x , inner_content_max_x + decoration_size ) ) ;
}
else
{
@ -1502,9 +1505,9 @@ void ImGui::EndTable()
}
if ( temp_data - > UserOuterSize . y < = 0.0f )
{
const float decoration_size = ( table - > Flags & ImGuiTableFlags_ScrollY ) ? inner_window - > ScrollbarSizes . y : 0.0f ;
const float decoration_size = ( table - > Flags & ImGuiTableFlags_ScrollX ) ? inner_window - > ScrollbarSizes . y : 0.0f ;
outer_window - > DC . IdealMaxPos . y = ImMax ( outer_window - > DC . IdealMaxPos . y , inner_content_max_y + decoration_size - temp_data - > UserOuterSize . y ) ;
outer_window - > DC . CursorMaxPos . y = ImMax ( backup_outer_max_pos . y , ImMin ( table - > OuterRect . Max . y , inner_content_max_y ) ) ;
outer_window - > DC . CursorMaxPos . y = ImMax ( backup_outer_max_pos . y , ImMin ( table - > OuterRect . Max . y , inner_content_max_y + decoration_size ) ) ;
}
else
{