MultiSelect: Fixed right-click handling in MultiSelectItemFooter() when not focused.

This commit is contained in:
ocornut 2023-06-07 17:40:59 +02:00
parent e3616e151f
commit ab9326f4ae

View File

@ -7332,7 +7332,11 @@ void ImGui::MultiSelectItemFooter(ImGuiID id, bool* p_selected, bool* p_pressed)
ImGuiMultiSelectState* storage = ms->Storage;
if (pressed)
ms->IsFocused = true;
if (!ms->IsFocused)
bool hovered = false;
if (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredRect)
hovered = IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup);
if (!ms->IsFocused && !hovered)
return;
void* item_data = (void*)g.NextItemData.SelectionUserData;
@ -7358,7 +7362,6 @@ void ImGui::MultiSelectItemFooter(ImGuiID id, bool* p_selected, bool* p_pressed)
// Right-click handling: this could be moved at the Selectable() level.
// FIXME-MULTISELECT: See https://github.com/ocornut/imgui/pull/5816
bool hovered = IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup);
if (hovered && IsMouseClicked(1))
{
if (g.ActiveId != 0 && g.ActiveId != id)