Fix base keymap selector keyboard shortcuts

Kirill Bulatov created

Change summary

crates/welcome/src/base_keymap_picker.rs | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)

Detailed changes

crates/welcome/src/base_keymap_picker.rs 🔗

@@ -36,13 +36,12 @@ pub fn toggle(
 }
 
 pub struct BaseKeymapSelector {
-    focus_handle: gpui::FocusHandle,
     picker: View<Picker<BaseKeymapSelectorDelegate>>,
 }
 
 impl FocusableView for BaseKeymapSelector {
-    fn focus_handle(&self, _cx: &AppContext) -> gpui::FocusHandle {
-        self.focus_handle.clone()
+    fn focus_handle(&self, cx: &AppContext) -> gpui::FocusHandle {
+        self.picker.focus_handle(cx)
     }
 }
 
@@ -55,17 +54,13 @@ impl BaseKeymapSelector {
         cx: &mut ViewContext<BaseKeymapSelector>,
     ) -> Self {
         let picker = cx.new_view(|cx| Picker::new(delegate, cx));
-        let focus_handle = cx.focus_handle();
-        Self {
-            focus_handle,
-            picker,
-        }
+        Self { picker }
     }
 }
 
 impl Render for BaseKeymapSelector {
     fn render(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {
-        self.picker.clone()
+        v_stack().w(rems(34.)).child(self.picker.clone())
     }
 }
 
@@ -184,7 +179,13 @@ impl PickerDelegate for BaseKeymapSelectorDelegate {
             .ok();
     }
 
-    fn dismissed(&mut self, _cx: &mut ViewContext<Picker<BaseKeymapSelectorDelegate>>) {}
+    fn dismissed(&mut self, cx: &mut ViewContext<Picker<BaseKeymapSelectorDelegate>>) {
+        self.view
+            .update(cx, |_, cx| {
+                cx.emit(DismissEvent);
+            })
+            .log_err();
+    }
 
     fn render_match(
         &self,