Browse Source

Merge pull request #417 from Demonthos/master

handle backtab for tui
Jon Kelley 3 năm trước cách đây
mục cha
commit
d9e14db434
1 tập tin đã thay đổi với 7 bổ sung2 xóa
  1. 7 2
      packages/tui/src/hooks.rs

+ 7 - 2
packages/tui/src/hooks.rs

@@ -664,6 +664,7 @@ fn get_event(evt: TermEvent) -> Option<(&'static str, EventData)> {
 
 fn translate_key_event(event: crossterm::event::KeyEvent) -> Option<EventData> {
     let (code, key_str);
+    let mut shift_key = event.modifiers.contains(KeyModifiers::SHIFT);
     if let TermKeyCode::Char(c) = event.code {
         code = match c {
             'A'..='Z' | 'a'..='z' => match c.to_ascii_uppercase() {
@@ -777,7 +778,11 @@ fn translate_key_event(event: crossterm::event::KeyEvent) -> Option<EventData> {
                 12 => KeyCode::F12,
                 _ => return None,
             },
-            TermKeyCode::BackTab => return None,
+            // backtab is Shift + Tab
+            TermKeyCode::BackTab => {
+                shift_key = true;
+                KeyCode::Tab
+            }
             TermKeyCode::Null => return None,
             _ => return None,
         };
@@ -795,7 +800,7 @@ fn translate_key_event(event: crossterm::event::KeyEvent) -> Option<EventData> {
         alt_key: event.modifiers.contains(KeyModifiers::ALT),
         ctrl_key: event.modifiers.contains(KeyModifiers::CONTROL),
         meta_key: false,
-        shift_key: event.modifiers.contains(KeyModifiers::SHIFT),
+        shift_key,
         locale: Default::default(),
         location: 0x00,
         repeat: Default::default(),