WIP Menus: fixed hovering handling of menus from menu bars (#126)

docking
ocornut 10 years ago
parent f2b738648f
commit 88d7b3de23

@ -4707,7 +4707,7 @@ static inline bool IsWindowContentHoverable(ImGuiWindow* window)
static bool IsHovered(const ImRect& bb, ImGuiID id) static bool IsHovered(const ImRect& bb, ImGuiID id)
{ {
ImGuiState& g = *GImGui; ImGuiState& g = *GImGui;
if (g.HoveredId == 0) if (g.HoveredId == 0 || g.HoveredId == id)
{ {
ImGuiWindow* window = GetCurrentWindow(); ImGuiWindow* window = GetCurrentWindow();
if (g.HoveredRootWindow == window->RootWindow) if (g.HoveredRootWindow == window->RootWindow)
@ -7504,7 +7504,7 @@ bool ImGui::BeginMenu(const char* label)
RenderCollapseTriangle(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), false); RenderCollapseTriangle(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), false);
} }
bool hovered = ImGui::IsItemHovered(); bool hovered = IsHovered(window->DC.LastItemRect, id);
if (!opened && hovered) if (!opened && hovered)
{ {
ImGui::OpenPopup(label); ImGui::OpenPopup(label);

Loading…
Cancel
Save