Fixed user-facing version of IsItemHovered() ignoring overlapping windows
This commit is contained in:
parent
d692286862
commit
6e99688fa7
@ -4347,11 +4347,9 @@ static bool IsHovered(const ImRect& bb, ImGuiID id)
|
|||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
if (g.HoveredRootWindow == window->RootWindow)
|
if (g.HoveredRootWindow == window->RootWindow)
|
||||||
{
|
|
||||||
if ((g.ActiveId == 0 || g.ActiveId == id || g.ActiveIdIsFocusedOnly) && IsMouseHoveringRect(bb))
|
if ((g.ActiveId == 0 || g.ActiveId == id || g.ActiveIdIsFocusedOnly) && IsMouseHoveringRect(bb))
|
||||||
if (IsWindowContentHoverable(g.HoveredRootWindow))
|
if (IsWindowContentHoverable(g.HoveredRootWindow))
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -7215,9 +7213,10 @@ static bool ItemAdd(const ImRect& bb, const ImGuiID* id)
|
|||||||
// So that clicking on items with no active id such as Text() still returns true with IsItemHovered()
|
// So that clicking on items with no active id such as Text() still returns true with IsItemHovered()
|
||||||
window->DC.LastItemHoveredRect = true;
|
window->DC.LastItemHoveredRect = true;
|
||||||
window->DC.LastItemHoveredAndUsable = false;
|
window->DC.LastItemHoveredAndUsable = false;
|
||||||
if (g.ActiveId == 0 || (id && g.ActiveId == *id) || g.ActiveIdIsFocusedOnly || (g.ActiveId == window->MoveID))
|
if (g.HoveredRootWindow == window->RootWindow)
|
||||||
if (IsWindowContentHoverable(window))
|
if (g.ActiveId == 0 || (id && g.ActiveId == *id) || g.ActiveIdIsFocusedOnly || (g.ActiveId == window->MoveID))
|
||||||
window->DC.LastItemHoveredAndUsable = true;
|
if (IsWindowContentHoverable(window))
|
||||||
|
window->DC.LastItemHoveredAndUsable = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user