@ -452,7 +452,6 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
table - > CellSpacingX1 = inner_spacing_explicit + inner_spacing_for_border ;
table - > CellSpacingX2 = inner_spacing_explicit ;
table - > CellPaddingX = inner_padding_explicit ;
table - > CellPaddingY = g . Style . CellPadding . y ;
const float outer_padding_for_border = ( flags & ImGuiTableFlags_BordersOuterV ) ? TABLE_BORDER_SIZE : 0.0f ;
const float outer_padding_explicit = pad_outer_x ? g . Style . CellPadding . x : 0.0f ;
@ -469,6 +468,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
table - > RowPosY1 = table - > RowPosY2 = table - > WorkRect . Min . y ; // This is needed somehow
table - > RowTextBaseline = 0.0f ; // This will be cleared again by TableBeginRow()
table - > RowCellPaddingY = 0.0f ;
table - > FreezeRowsRequest = table - > FreezeRowsCount = 0 ; // This will be setup by TableSetupScrollFreeze(), if any
table - > FreezeColumnsRequest = table - > FreezeColumnsCount = 0 ;
table - > IsUnfrozenRows = true ;
@ -1745,22 +1745,22 @@ void ImGui::TableNextRow(ImGuiTableRowFlags row_flags, float row_min_height)
table - > LastRowFlags = table - > RowFlags ;
table - > RowFlags = row_flags ;
table - > RowCellPaddingY = g . Style . CellPadding . y ;
table - > RowMinHeight = row_min_height ;
TableBeginRow ( table ) ;
// We honor min_row_height requested by user, but cannot guarantee per-row maximum height,
// because that would essentially require a unique clipping rectangle per-cell.
table - > RowPosY2 + = table - > CellPaddingY * 2.0f ;
table - > RowPosY2 + = table - > Row CellPaddingY * 2.0f ;
table - > RowPosY2 = ImMax ( table - > RowPosY2 , table - > RowPosY1 + row_min_height ) ;
// Disable output until user calls TableNextColumn()
table - > InnerWindow - > SkipItems = true ;
}
// [Internal] C alled by TableNextRow()
// [Internal] Only c alled by TableNextRow()
void ImGui : : TableBeginRow ( ImGuiTable * table )
{
ImGuiContext & g = * GImGui ;
ImGuiWindow * window = table - > InnerWindow ;
IM_ASSERT ( ! table - > IsInsideRow ) ;
@ -1779,10 +1779,9 @@ void ImGui::TableBeginRow(ImGuiTable* table)
table - > RowPosY1 = table - > RowPosY2 = next_y1 ;
table - > RowTextBaseline = 0.0f ;
table - > RowIndentOffsetX = window - > DC . Indent . x - table - > HostIndentX ; // Lock indent
table - > CellPaddingY = g . Style . CellPadding . y ;
window - > DC . PrevLineTextBaseOffset = 0.0f ;
window - > DC . CursorPosPrevLine = ImVec2 ( window - > DC . CursorPos . x , window - > DC . CursorPos . y + table - > CellPaddingY ) ; // This allows users to call SameLine() to share LineSize between columns.
window - > DC . CursorPosPrevLine = ImVec2 ( window - > DC . CursorPos . x , window - > DC . CursorPos . y + table - > Row CellPaddingY) ; // This allows users to call SameLine() to share LineSize between columns.
window - > DC . PrevLineSize = window - > DC . CurrLineSize = ImVec2 ( 0.0f , 0.0f ) ; // This allows users to call SameLine() to share LineSize between columns, and to call it from first column too.
window - > DC . IsSameLine = window - > DC . IsSetPos = false ;
window - > DC . CursorMaxPos . y = next_y1 ;
@ -2017,7 +2016,7 @@ void ImGui::TableBeginCell(ImGuiTable* table, int column_n)
start_x + = table - > RowIndentOffsetX ; // ~~ += window.DC.Indent.x - table->HostIndentX, except we locked it for the row.
window - > DC . CursorPos . x = start_x ;
window - > DC . CursorPos . y = table - > RowPosY1 + table - > CellPaddingY ;
window - > DC . CursorPos . y = table - > RowPosY1 + table - > Row CellPaddingY;
window - > DC . CursorMaxPos . x = window - > DC . CursorPos . x ;
window - > DC . ColumnsOffset . x = start_x - window - > Pos . x - window - > DC . Indent . x ; // FIXME-WORKRECT
window - > DC . CursorPosPrevLine . x = window - > DC . CursorPos . x ; // PrevLine.y is preserved. This allows users to call SameLine() to share LineSize between columns.
@ -2075,7 +2074,7 @@ void ImGui::TableEndCell(ImGuiTable* table)
p_max_pos_x = table - > IsUnfrozenRows ? & column - > ContentMaxXUnfrozen : & column - > ContentMaxXFrozen ;
* p_max_pos_x = ImMax ( * p_max_pos_x , window - > DC . CursorMaxPos . x ) ;
if ( column - > IsEnabled )
table - > RowPosY2 = ImMax ( table - > RowPosY2 , window - > DC . CursorMaxPos . y + table - > CellPaddingY ) ;
table - > RowPosY2 = ImMax ( table - > RowPosY2 , window - > DC . CursorMaxPos . y + table - > Row CellPaddingY) ;
column - > ItemWidth = window - > DC . ItemWidth ;
// Propagate text baseline for the entire row
@ -2957,7 +2956,7 @@ void ImGui::TableHeader(const char* label)
// If we already got a row height, there's use that.
// FIXME-TABLE: Padding problem if the correct outer-padding CellBgRect strays off our ClipRect?
ImRect cell_r = TableGetCellBgRect ( table , column_n ) ;
float label_height = ImMax ( label_size . y , table - > RowMinHeight - table - > CellPaddingY * 2.0f ) ;
float label_height = ImMax ( label_size . y , table - > RowMinHeight - table - > Row CellPaddingY * 2.0f ) ;
// Calculate ideal size for sort order arrow
float w_arrow = 0.0f ;