Tables: fixed an issue detecting hovering column/row when using multiple synched instances layed out at different X positions. (#7933)
Was reading ClipRect from last frame.
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index d76a040..9574558 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -85,6 +85,8 @@
- 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)
diff --git a/imgui_tables.cpp b/imgui_tables.cpp
index 69d1322..9ee70fc 100644
--- a/imgui_tables.cpp
+++ b/imgui_tables.cpp
@@ -1070,10 +1070,6 @@
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;
@@ -1128,8 +1124,13 @@
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