From f5a6a112c8318f8c766d2a211d5954ae86787411 Mon Sep 17 00:00:00 2001 From: K Simmons Date: Tue, 9 Aug 2022 15:51:17 -0700 Subject: [PATCH] Address picker issues --- crates/command_palette/src/command_palette.rs | 4 +++- crates/file_finder/src/file_finder.rs | 4 +++- crates/outline/src/outline.rs | 4 +++- crates/picker/src/picker.rs | 4 +++- crates/project_symbols/src/project_symbols.rs | 4 +++- crates/search/src/buffer_search.rs | 4 +++- crates/terminal/src/terminal_view.rs | 4 +++- crates/theme_selector/src/theme_selector.rs | 4 +++- crates/workspace/src/workspace.rs | 1 - 9 files changed, 24 insertions(+), 9 deletions(-) diff --git a/crates/command_palette/src/command_palette.rs b/crates/command_palette/src/command_palette.rs index 5d6f6e14a8a0b85754234a4a8479ca66ff48bd2e..6bef826e5b0458d44f15d1110d841af1538d8a6d 100644 --- a/crates/command_palette/src/command_palette.rs +++ b/crates/command_palette/src/command_palette.rs @@ -134,7 +134,9 @@ impl View for CommandPalette { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(&self.picker); + if cx.is_self_focused() { + cx.focus(&self.picker); + } } } diff --git a/crates/file_finder/src/file_finder.rs b/crates/file_finder/src/file_finder.rs index aeec79901563c2449ddb90c15b944ab0bfae36b6..dbdc3ec3299497d61bf7f4f35a2261017b72cf88 100644 --- a/crates/file_finder/src/file_finder.rs +++ b/crates/file_finder/src/file_finder.rs @@ -54,7 +54,9 @@ impl View for FileFinder { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(&self.picker); + if cx.is_self_focused() { + cx.focus(&self.picker); + } } } diff --git a/crates/outline/src/outline.rs b/crates/outline/src/outline.rs index 8a8c559cf3d75fb426deca62aefff5e697939ea9..414a48ed109cfdb4aa3522d7467c257396b4a2ac 100644 --- a/crates/outline/src/outline.rs +++ b/crates/outline/src/outline.rs @@ -53,7 +53,9 @@ impl View for OutlineView { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(&self.picker); + if cx.is_self_focused() { + cx.focus(&self.picker); + } } } diff --git a/crates/picker/src/picker.rs b/crates/picker/src/picker.rs index d3f729ba8371690af40b2c8e05d1d98166fa80f9..19a01fcbadebdde13b576a013c1e59e58db42fc8 100644 --- a/crates/picker/src/picker.rs +++ b/crates/picker/src/picker.rs @@ -119,7 +119,9 @@ impl View for Picker { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(&self.query_editor); + if cx.is_self_focused() { + cx.focus(&self.query_editor); + } } } diff --git a/crates/project_symbols/src/project_symbols.rs b/crates/project_symbols/src/project_symbols.rs index 755bca20d67cc1c94303a12c3ff4b67fff87d580..c310cfb0437b6e433cc6c8fac7b9660de4dc0ecf 100644 --- a/crates/project_symbols/src/project_symbols.rs +++ b/crates/project_symbols/src/project_symbols.rs @@ -52,7 +52,9 @@ impl View for ProjectSymbolsView { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(&self.picker); + if cx.is_self_focused() { + cx.focus(&self.picker); + } } } diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index d9a048b604c412ff41761b3276b558e4dcad0f5d..bc6f37202dc10f9054c1e463d67d9541d73d5fee 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -81,7 +81,9 @@ impl View for BufferSearchBar { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(&self.query_editor); + if cx.is_self_focused() { + cx.focus(&self.query_editor); + } } fn render(&mut self, cx: &mut RenderContext) -> ElementBox { diff --git a/crates/terminal/src/terminal_view.rs b/crates/terminal/src/terminal_view.rs index a3492c2a94a8f306b06596268094b13d52a14d7f..1b4544a3dc01290842794ac764fdfc5944af0c50 100644 --- a/crates/terminal/src/terminal_view.rs +++ b/crates/terminal/src/terminal_view.rs @@ -153,7 +153,9 @@ impl View for TerminalView { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(self.content.handle()); + if cx.is_self_focused() { + cx.focus(self.content.handle()); + } } fn keymap_context(&self, _: &gpui::AppContext) -> gpui::keymap::Context { diff --git a/crates/theme_selector/src/theme_selector.rs b/crates/theme_selector/src/theme_selector.rs index d1e81b11a729ccd4baa6369f7831368c24b68dbc..dcda882168bc96aec91ee81013a8ec050b886b7e 100644 --- a/crates/theme_selector/src/theme_selector.rs +++ b/crates/theme_selector/src/theme_selector.rs @@ -250,6 +250,8 @@ impl View for ThemeSelector { } fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - cx.focus(&self.picker); + if cx.is_self_focused() { + cx.focus(&self.picker); + } } } diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index c4b625c725b73ddc66d0b8922ccdf18f95a57dee..7043c3a683d5705ee7ec537e771b861b90545bdc 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -2476,7 +2476,6 @@ impl View for Workspace { fn on_focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { if cx.is_self_focused() { - println!("Active Pane Focused"); cx.focus(&self.active_pane); } }