diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 107d6e84f05e9435d3955644e81b65b779b95ebf..6f044c0f710fcd0b0f758bb54cfa32ada18035f3 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -521,7 +521,7 @@ } }, { - "context": "OutlinePanel", + "context": "OutlinePanel && not_editing", "bindings": { "escape": "menu::Cancel", "left": "outline_panel::CollapseSelectedEntry", diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 752a05cbee89238af5c5510d86653cf91e50edc1..5ebd3d0ccd1ea4b9755a1933f447af3fa2df9282 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -528,7 +528,7 @@ } }, { - "context": "OutlinePanel", + "context": "OutlinePanel && not_editing", "bindings": { "escape": "menu::Cancel", "left": "outline_panel::CollapseSelectedEntry", diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 9e6dfdb7208be74a75b67319f3ff3594c016325a..37a3ee0780d51e27ce6370d2a2628a15e42b97ad 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -489,7 +489,7 @@ } }, { - "context": "OutlinePanel", + "context": "OutlinePanel && not_editing", "bindings": { "j": "menu::SelectNext", "k": "menu::SelectPrev", diff --git a/crates/outline_panel/src/outline_panel.rs b/crates/outline_panel/src/outline_panel.rs index 18629f57bf6f036796ef0fcd1a769d55b4324d0a..6605426d5976b5f25edd31b370d5d064e2228ea3 100644 --- a/crates/outline_panel/src/outline_panel.rs +++ b/crates/outline_panel/src/outline_panel.rs @@ -722,10 +722,16 @@ impl OutlinePanel { ); } - fn dispatch_context(&self, _: &ViewContext) -> KeyContext { + fn dispatch_context(&self, cx: &ViewContext) -> KeyContext { let mut dispatch_context = KeyContext::new_with_defaults(); dispatch_context.add("OutlinePanel"); dispatch_context.add("menu"); + let identifier = if self.filter_editor.focus_handle(cx).is_focused(cx) { + "editing" + } else { + "not_editing" + }; + dispatch_context.add(identifier); dispatch_context }