diff --git a/server/TracyView.hpp b/server/TracyView.hpp index 654134a7..a1aadcf4 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -458,6 +458,7 @@ private: ImGuiTextFilter m_statisticsFilter; ImGuiTextFilter m_statisticsImageFilter; ImGuiTextFilter m_userTextFilter; + unordered_flat_set m_filteredZones; Region m_highlight; Region m_highlightZoom; diff --git a/server/TracyView_FindZone.cpp b/server/TracyView_FindZone.cpp index f6ded831..216eeaf8 100644 --- a/server/TracyView_FindZone.cpp +++ b/server/TracyView_FindZone.cpp @@ -543,6 +543,7 @@ void View::DrawFindZone() { auto& ev = zones[i]; if( ev.Zone()->End() > rangeMax || ev.Zone()->Start() < rangeMin ) continue; + if( m_filteredZones.contains(&ev) ) continue; if( selGroup == GetSelectionTarget( ev, groupBy ) ) { const auto ctx = m_worker.GetContextSwitchData( m_worker.DecompressThread( zones[i].Thread() ) ); @@ -560,6 +561,7 @@ void View::DrawFindZone() for( size_t i=m_findZone.selSortNum; iEnd() > rangeMax || ev.Zone()->Start() < rangeMin ) continue; + if( m_filteredZones.contains(&ev) ) continue; if( selGroup == GetSelectionTarget( ev, groupBy ) ) { const auto t = ev.Zone()->End() - ev.Zone()->Start() - GetZoneChildTimeFast( *ev.Zone() ); @@ -595,6 +598,7 @@ void View::DrawFindZone() for( size_t i=m_findZone.selSortNum; iEnd() - ev.Zone()->Start() - GetZoneChildTimeFast( *ev.Zone() ); @@ -613,6 +617,7 @@ void View::DrawFindZone() { auto& ev = zones[i]; if( ev.Zone()->End() > rangeMax || ev.Zone()->Start() < rangeMin ) continue; + if( m_filteredZones.contains(&ev) ) continue; if( selGroup == GetSelectionTarget( ev, groupBy ) ) { const auto t = ev.Zone()->End() - ev.Zone()->Start(); @@ -627,6 +632,7 @@ void View::DrawFindZone() for( size_t i=m_findZone.selSortNum; iEnd() - ev.Zone()->Start(); @@ -1376,6 +1382,7 @@ void View::DrawFindZone() ImGui::Separator(); if( filterChanged ) { + m_filteredZones.clear(); m_findZone.ResetGroups(); } @@ -1460,6 +1467,7 @@ void View::DrawFindZone() } if( !keep ) { + m_filteredZones.insert(&ev); zptr++; continue; }