Active widgets is not clipped, so it can always release its active state (mentioned in #143)

Otherwise a change in layout moving active widget to a clipped region
may lock the active id.
This commit is contained in:
ocornut 2015-04-13 20:59:44 +01:00
parent 9918ec31d6
commit 16ddd796f3

View File

@ -7265,8 +7265,11 @@ static bool ItemAdd(const ImRect& bb, const ImGuiID* id)
window->DC.LastItemRect = bb; window->DC.LastItemRect = bb;
if (IsClipped(bb)) if (IsClipped(bb))
{ {
window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false; if (!id || *id != GImGui->ActiveId)
return false; {
window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false;
return false;
}
} }
// This is a sensible default, but widgets are free to override it after calling ItemAdd() // This is a sensible default, but widgets are free to override it after calling ItemAdd()