|
@@ -3904,7 +3904,7 @@ void ImGui::EndPopup()
|
|
|
bool ImGui::OpenPopupOnItemClick(const char* str_id, int mouse_button)
|
|
|
{
|
|
|
ImGuiWindow* window = GImGui->CurrentWindow;
|
|
|
- if (IsMouseClicked(mouse_button) && IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
|
|
+ if (IsMouseReleased(mouse_button) && IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
|
|
{
|
|
|
ImGuiID id = str_id ? window->GetID(str_id) : window->DC.LastItemId; // If user hasn't passed an ID, we can use the LastItemID. Using LastItemID as a Popup ID won't conflict!
|
|
|
IM_ASSERT(id != 0); // However, you cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item)
|
|
@@ -3922,9 +3922,8 @@ bool ImGui::BeginPopupContextItem(const char* str_id, int mouse_button)
|
|
|
ImGuiWindow* window = GImGui->CurrentWindow;
|
|
|
ImGuiID id = str_id ? window->GetID(str_id) : window->DC.LastItemId; // If user hasn't passed an ID, we can use the LastItemID. Using LastItemID as a Popup ID won't conflict!
|
|
|
IM_ASSERT(id != 0); // However, you cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item)
|
|
|
- if (IsMouseClicked(mouse_button))
|
|
|
- if (IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
|
|
- OpenPopupEx(id, true);
|
|
|
+ if (IsMouseReleased(mouse_button) && IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
|
|
+ OpenPopupEx(id, true);
|
|
|
return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings);
|
|
|
}
|
|
|
|
|
@@ -3933,10 +3932,9 @@ bool ImGui::BeginPopupContextWindow(const char* str_id, int mouse_button, bool a
|
|
|
if (!str_id)
|
|
|
str_id = "window_context";
|
|
|
ImGuiID id = GImGui->CurrentWindow->GetID(str_id);
|
|
|
- if (IsMouseClicked(mouse_button))
|
|
|
- if (IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
|
|
- if (also_over_items || !IsAnyItemHovered())
|
|
|
- OpenPopupEx(id, true);
|
|
|
+ if (IsMouseReleased(mouse_button) && IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup))
|
|
|
+ if (also_over_items || !IsAnyItemHovered())
|
|
|
+ OpenPopupEx(id, true);
|
|
|
return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings);
|
|
|
}
|
|
|
|
|
@@ -3945,7 +3943,7 @@ bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button)
|
|
|
if (!str_id)
|
|
|
str_id = "void_context";
|
|
|
ImGuiID id = GImGui->CurrentWindow->GetID(str_id);
|
|
|
- if (!IsAnyWindowHovered() && IsMouseClicked(mouse_button))
|
|
|
+ if (IsMouseReleased(mouse_button) && !IsAnyWindowHovered())
|
|
|
OpenPopupEx(id, true);
|
|
|
return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings);
|
|
|
}
|