keymap_ui: Fix panic in clear keystrokes (#34909)

Ben Kunkle created

Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Change summary

crates/settings_ui/src/keybindings.rs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Detailed changes

crates/settings_ui/src/keybindings.rs 🔗

@@ -2784,6 +2784,7 @@ impl KeystrokeInput {
         else {
             log::trace!("No keybinding to stop recording keystrokes in keystroke input");
             self.close_keystrokes.take();
+            self.close_keystrokes_start.take();
             return CloseKeystrokeResult::None;
         };
         let action_keystrokes = keybind_for_close_action.keystrokes();
@@ -2976,7 +2977,9 @@ impl KeystrokeInput {
             return;
         }
         window.focus(&self.outer_focus_handle);
-        if let Some(close_keystrokes_start) = self.close_keystrokes_start.take() {
+        if let Some(close_keystrokes_start) = self.close_keystrokes_start.take()
+            && close_keystrokes_start < self.keystrokes.len()
+        {
             self.keystrokes.drain(close_keystrokes_start..);
         }
         self.close_keystrokes.take();