|
@@ -5091,9 +5091,16 @@ const char* ImGui::GetStyleColorName(ImGuiCol idx)
|
|
|
|
|
|
bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags)
|
|
|
{
|
|
|
- IM_ASSERT((flags & (ImGuiHoveredFlags_AllowWhenOverlapped | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem)) == 0); // Flags not supported by this function
|
|
|
+ IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0); // Flags not supported by this function
|
|
|
ImGuiContext& g = *GImGui;
|
|
|
- return g.HoveredWindow == g.CurrentWindow && IsWindowContentHoverable(g.HoveredRootWindow, flags);
|
|
|
+ if (g.HoveredWindow != g.CurrentWindow)
|
|
|
+ return false;
|
|
|
+ if (!IsWindowContentHoverable(g.HoveredRootWindow, flags))
|
|
|
+ return false;
|
|
|
+ if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem))
|
|
|
+ if (g.ActiveId != 0 && g.ActiveIdWindow != g.CurrentWindow)
|
|
|
+ return false;
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
bool ImGui::IsWindowFocused()
|
|
@@ -5116,9 +5123,16 @@ bool ImGui::IsRootWindowOrAnyChildFocused()
|
|
|
|
|
|
bool ImGui::IsRootWindowOrAnyChildHovered(ImGuiHoveredFlags flags)
|
|
|
{
|
|
|
- IM_ASSERT((flags & (ImGuiHoveredFlags_AllowWhenOverlapped | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem)) == 0); // Flags not supported by this function
|
|
|
+ IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0); // Flags not supported by this function
|
|
|
ImGuiContext& g = *GImGui;
|
|
|
- return g.HoveredRootWindow && (g.HoveredRootWindow == g.CurrentWindow->RootWindow) && IsWindowContentHoverable(g.HoveredRootWindow, flags);
|
|
|
+ if (!g.HoveredRootWindow || (g.HoveredRootWindow != g.CurrentWindow->RootWindow))
|
|
|
+ return false;
|
|
|
+ if (!IsWindowContentHoverable(g.HoveredRootWindow, flags))
|
|
|
+ return false;
|
|
|
+ if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem))
|
|
|
+ if (g.ActiveId != 0 && g.ActiveIdWindow != g.CurrentWindow)
|
|
|
+ return false;
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
float ImGui::GetWindowWidth()
|