diff --git a/editor/tree_search.cpp b/editor/tree_search.cpp index e0494d1..ae775b5 100644 --- a/editor/tree_search.cpp +++ b/editor/tree_search.cpp @@ -405,6 +405,7 @@ void TreeSearch::update_search(Tree *p_tree) { // clear and redraw if search was active recently. if (was_searched_recently) { _clear_filter(); + number_matches.clear(); matching_entries.clear(); was_searched_recently = false; p_tree->queue_redraw(); diff --git a/editor/tree_search.h b/editor/tree_search.h index 1dbb2d2..21ff51f 100644 --- a/editor/tree_search.h +++ b/editor/tree_search.h @@ -53,10 +53,13 @@ private: // For TaskTree: These are updated when the tree is updated through TaskTree::_create_tree. Tree *tree_reference; - + // linearized ordering of tree items. Vector ordered_tree_items; + // entires that match the search mask. Vector matching_entries; + // number of descendant matches for each tree item. HashMap number_matches; + // custom draw-callbacks for each tree item. HashMap callable_cache; bool was_searched_recently = false; // Performance