/// <inheritdoc/> public override void OnBecameInvisible() { mouseoveredPart = SearchBoxPart.None; if (inspector.State.filter.HasFilter) { ClearFilterField(false); } }
/// <inheritdoc/> protected override void OnLayout(Rect itemPosition) { #if DEV_MODE && DEBUG_MOUSEOVERED_PART var wasMouseovered = mouseoveredPart; #endif var mousePos = Event.current.mousePosition; if (!itemPosition.Contains(mousePos)) { mouseoveredPart = SearchBoxPart.None; } else { // NOTE: It is important to check clearButtonRect before filterFieldClickRect // since the clear button is drawn on top of the filter field since Unity 2019.3 if (clearButtonRect.Contains(mousePos)) { mouseoveredPart = SearchBoxPart.ClearButton; } else if (dropdownButtonRect.Contains(mousePos)) { mouseoveredPart = SearchBoxPart.Dropdown; } else if (filterFieldClickRect.Contains(mousePos)) { mouseoveredPart = SearchBoxPart.TextField; } else { mouseoveredPart = SearchBoxPart.None; } } #if DEV_MODE && DEBUG_MOUSEOVERED_PART if (wasMouseovered != mouseoveredPart) { Debug.Log(StringUtils.ToColorizedString("mouseoveredPart = ", mouseoveredPart, " (was: ", wasMouseovered, ") with itemPosition=", itemPosition, ", mousePos=", mousePos, ", filterFieldClickRect=", filterFieldClickRect)); } #endif }