mirror of
https://github.com/ocornut/imgui.git
synced 2026-05-09 13:19:55 +08:00
Amend d1a8995 which didn't fix the thing it claimed to fix, as my naive last minute refactor broke it.
This commit is contained in:
+8
-5
@@ -8376,16 +8376,19 @@ void ImGui::MultiSelectItemFooter(ImGuiID id, bool* p_selected, bool* p_pressed)
|
|||||||
// However we account for ClipRect being larger than current column (e.g. when using SpanAllColumns)
|
// However we account for ClipRect being larger than current column (e.g. when using SpanAllColumns)
|
||||||
// A more generic version would be nice, but window->WorkRect.Min/Max exclude CellPadding. (#7994, #9383)
|
// A more generic version would be nice, but window->WorkRect.Min/Max exclude CellPadding. (#7994, #9383)
|
||||||
ImGuiTableColumn* column = &table->Columns[table->CurrentColumn];
|
ImGuiTableColumn* column = &table->Columns[table->CurrentColumn];
|
||||||
item_rect.Min.x = ImMax(item_rect.Min.x, column->MinX);
|
|
||||||
item_rect.Max.x = ImMin(item_rect.Max.x, column->MaxX);
|
|
||||||
float clip_min_x = (g.LastItemData.ItemFlags & ImGuiItemStatusFlags_HasClipRect) ? g.LastItemData.ClipRect.Min.x : window->ClipRect.Min.x;
|
float clip_min_x = (g.LastItemData.ItemFlags & ImGuiItemStatusFlags_HasClipRect) ? g.LastItemData.ClipRect.Min.x : window->ClipRect.Min.x;
|
||||||
float clip_max_x = (g.LastItemData.ItemFlags & ImGuiItemStatusFlags_HasClipRect) ? g.LastItemData.ClipRect.Max.x : window->ClipRect.Max.x;
|
float clip_max_x = (g.LastItemData.ItemFlags & ImGuiItemStatusFlags_HasClipRect) ? g.LastItemData.ClipRect.Max.x : window->ClipRect.Max.x;
|
||||||
if (clip_min_x != clip_max_x) // When zero sized we expect that bounds have been clamped and thus are unreliable
|
if (clip_min_x != clip_max_x) // When zero sized we expect that bounds have been clamped and thus are unreliable
|
||||||
{
|
{
|
||||||
item_rect.Min.x = ImMax(item_rect.Min.x, clip_min_x);
|
item_rect.Min.x = ImMax(item_rect.Min.x, ImMin(column->MinX, clip_min_x));
|
||||||
item_rect.Max.x = ImMin(item_rect.Max.x, clip_max_x);
|
item_rect.Max.x = ImMin(item_rect.Max.x, ImMax(column->MaxX, clip_max_x));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item_rect.Min.x = ImMax(item_rect.Min.x, column->MinX);
|
||||||
|
item_rect.Max.x = ImMin(item_rect.Max.x, column->MaxX);
|
||||||
|
}
|
||||||
|
//GetForegroundDrawList()->AddRect(item_rect.Min, item_rect.Max, IM_COL32(255, 0, 255, 255));
|
||||||
}
|
}
|
||||||
const bool rect_overlap_curr = bs->BoxSelectRectCurr.Overlaps(item_rect);
|
const bool rect_overlap_curr = bs->BoxSelectRectCurr.Overlaps(item_rect);
|
||||||
const bool rect_overlap_prev = bs->BoxSelectRectPrev.Overlaps(item_rect);
|
const bool rect_overlap_prev = bs->BoxSelectRectPrev.Overlaps(item_rect);
|
||||||
|
|||||||
Reference in New Issue
Block a user