From b151e12890eabb95cb25edf9a6cc4cc72b122526 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Tue, 23 Jan 2024 18:31:21 +0100 Subject: [PATCH] Drop active searchable item subscription when changing active item We were leaking the previous active item's subscription, which meant that we would receive the `MatchesInvalidated` event as many times as we changed items. Co-Authored-By: Thorsten Ball Co-Authored-By: Mikayla Maki --- crates/search/src/buffer_search.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index f4c9f7ef0f..5f7275495a 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -396,8 +396,8 @@ impl ToolbarItemView for BufferSearchBar { { let this = cx.view().downgrade(); - searchable_item_handle - .subscribe_to_search_events( + self.active_searchable_item_subscription = + Some(searchable_item_handle.subscribe_to_search_events( cx, Box::new(move |search_event, cx| { if let Some(this) = this.upgrade() { @@ -406,8 +406,7 @@ impl ToolbarItemView for BufferSearchBar { }); } }), - ) - .detach(); + )); self.active_searchable_item = Some(searchable_item_handle); let _ = self.update_matches(cx);