From 324e4658ba1b26b081240cb694179314c095d5f2 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Wed, 9 Apr 2025 20:55:19 -0600 Subject: [PATCH] Reset modifiers when the window active state changes (#28348) Closes #23449 Release Notes: - Fixed a bug causing shift to get stuck down when the window focus changes --------- Co-authored-by: Dino --- crates/gpui/src/window.rs | 1 + crates/project_panel/src/project_panel_tests.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index 4d1115abc5..35b53a2829 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -845,6 +845,7 @@ impl Window { handle .update(&mut cx, |_, window, cx| { window.active.set(active); + window.modifiers = window.platform_window.modifiers(); window .activation_observers .clone() diff --git a/crates/project_panel/src/project_panel_tests.rs b/crates/project_panel/src/project_panel_tests.rs index fc1a538cc9..e35e5d25c5 100644 --- a/crates/project_panel/src/project_panel_tests.rs +++ b/crates/project_panel/src/project_panel_tests.rs @@ -2736,6 +2736,7 @@ async fn test_multiple_marked_entries(cx: &mut gpui::TestAppContext) { shift: true, ..Default::default() }; + cx.run_until_parked(); cx.simulate_modifiers_change(modifiers_with_shift); cx.update(|window, cx| { panel.update(cx, |this, cx| {