From ed6bf7f161c6af6e10354faacb8b643a55c80b27 Mon Sep 17 00:00:00 2001 From: brian tan Date: Sat, 8 Mar 2025 17:17:20 -0500 Subject: [PATCH] diagnostics: Fix losing focus when activating from diagnostics view (#25517) Closes #25509 Changes: - If active item is already diagnostics, don't try to focus it again. Instead of not focusing, should it just not activate instead? Something like: if !workspace .active_item(cx) .map(|item| item.item_id() == existing.item_id()) .unwrap_or(false) { workspace.activate_item(&existing, true, true, window, cx); } Release Notes: - N/A --- crates/diagnostics/src/diagnostics.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 2bca1a1e47..169946ce0e 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -311,7 +311,10 @@ impl ProjectDiagnosticsEditor { cx: &mut Context, ) { if let Some(existing) = workspace.item_of_type::(cx) { - workspace.activate_item(&existing, true, true, window, cx); + let is_active = workspace + .active_item(cx) + .is_some_and(|item| item.item_id() == existing.item_id()); + workspace.activate_item(&existing, true, !is_active, window, cx); } else { let workspace_handle = cx.entity().downgrade();