public static bool ShowAtPosition(Rect rect, PackageFilterTab tab, PageFilters filters) { if (s_Window != null) { return(false); } var nowMilliSeconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; var justClosed = nowMilliSeconds < s_LastClosedTime + 150; if (!justClosed) { Event.current?.Use(); if (tab != PackageFilterTab.AssetStore) { s_Window = CreateInstance <UpmFiltersWindow>(); } else { s_Window = CreateInstance <AssetStoreFiltersWindow>(); } s_Window.Init(rect, filters); } return(!justClosed); }
private void SetupFilters() { filtersMenu.ShowTextTooltipOnSizeChange(-16); filtersMenu.clicked += () => { if (PackageManagerFiltersWindow.instance != null) { PackageManagerFiltersWindow.instance.Close(); } var page = m_PageManager.GetCurrentPage(); if (page != null && PackageManagerFiltersWindow.ShowAtPosition(GUIUtility.GUIToScreenRect(filtersMenu.worldBound), page)) { filtersMenu.pseudoStates |= PseudoStates.Active; PackageManagerFiltersWindow.instance.OnFiltersChanged += filters => { if (page.UpdateFilters(filters)) { PackageManagerFiltersAnalytics.SendEvent(filters); } }; PackageManagerFiltersWindow.instance.OnClose += () => { filtersMenu.pseudoStates &= ~PseudoStates.Active; }; } }; clearFiltersButton.clicked += () => { var page = m_PageManager.GetCurrentPage(); page.ClearFilters(); }; }
private void OnDisable() { if (s_Window == null) { return; } if (m_DelayedUpdate) { EditorApplication.update -= DelayedUpdatePageFilters; OnFiltersChanged?.Invoke(m_Filters); } s_LastClosedTime = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; s_Window = null; OnClose?.Invoke(); }