BeginComboPreview: fix when part of preview rect is clipped by parent window. (#6501, #1658)

This commit is contained in:
ocornut 2023-06-09 13:41:11 +02:00
parent 666b93e989
commit a134892a3d

View File

@ -1829,7 +1829,7 @@ bool ImGui::BeginComboPreview()
if (window->SkipItems || !(g.LastItemData.StatusFlags & ImGuiItemStatusFlags_Visible)) if (window->SkipItems || !(g.LastItemData.StatusFlags & ImGuiItemStatusFlags_Visible))
return false; return false;
IM_ASSERT(g.LastItemData.Rect.Min.x == preview_data->PreviewRect.Min.x && g.LastItemData.Rect.Min.y == preview_data->PreviewRect.Min.y); // Didn't call after BeginCombo/EndCombo block or forgot to pass ImGuiComboFlags_CustomPreview flag? IM_ASSERT(g.LastItemData.Rect.Min.x == preview_data->PreviewRect.Min.x && g.LastItemData.Rect.Min.y == preview_data->PreviewRect.Min.y); // Didn't call after BeginCombo/EndCombo block or forgot to pass ImGuiComboFlags_CustomPreview flag?
if (!window->ClipRect.Contains(preview_data->PreviewRect)) // Narrower test (optional) if (!window->ClipRect.Overlaps(preview_data->PreviewRect)) // Narrower test (optional)
return false; return false;
// FIXME: This could be contained in a PushWorkRect() api // FIXME: This could be contained in a PushWorkRect() api