Skip to content

Commit

Permalink
Tables: fixed an issue detecting hovering column/row when using multi…
Browse files Browse the repository at this point in the history
…ple synched instances layed out at different X positions. (#7933)

Was reading ClipRect from last frame.
  • Loading branch information
ocornut committed Sep 4, 2024
1 parent 722a2a1 commit 8dd3383
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
2 changes: 2 additions & 0 deletions docs/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ Other changes:
- Tables: fixes/revert a 1.90 change were outer border would be moved bottom and right
by an extra pixel + rework the change so that contents doesn't overlap the bottom and
right border in a scrolling table. (#6765, #3752, #7428)
- Tables: fixed an issue detecting hovering column/row when using multiple synched instances,
layed out at different X positions. (#7932)
- Tabs: avoid queuing a refocus when tab is already focused, which would have the
side-effect of e.g. closing popup on a mouse release. (#7914)
- InputText: allow callback to update buffer while in read-only mode. (imgui_club/#46)
Expand Down
11 changes: 6 additions & 5 deletions imgui_tables.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1070,10 +1070,6 @@ void ImGui::TableUpdateLayout(ImGuiTable* table)
continue;
}

// Detect hovered column
if (is_hovering_table && mouse_skewed_x >= column->ClipRect.Min.x && mouse_skewed_x < column->ClipRect.Max.x)
table->HoveredColumnBody = (ImGuiTableColumnIdx)column_n;

// Lock start position
column->MinX = offset_x;

Expand Down Expand Up @@ -1128,8 +1124,13 @@ void ImGui::TableUpdateLayout(ImGuiTable* table)
column->Flags |= ImGuiTableColumnFlags_IsVisible;
if (column->SortOrder != -1)
column->Flags |= ImGuiTableColumnFlags_IsSorted;
if (table->HoveredColumnBody == column_n)

// Detect hovered column
if (is_hovering_table && mouse_skewed_x >= column->ClipRect.Min.x && mouse_skewed_x < column->ClipRect.Max.x)
{
column->Flags |= ImGuiTableColumnFlags_IsHovered;
table->HoveredColumnBody = (ImGuiTableColumnIdx)column_n;
}

// Alignment
// FIXME-TABLE: This align based on the whole column width, not per-cell, and therefore isn't useful in
Expand Down

0 comments on commit 8dd3383

Please sign in to comment.