ソースを参照

LibKeyboard: get_char now handles e0 prefix for control keys

Control keys which have numpad counter-parts have the same scancode
except for an e0 prefix. We now return a 0 code_point for those keys.
Gal Horowitz 4 年 前
コミット
fea498e9ac
1 ファイル変更4 行追加0 行削除
  1. 4 0
      Libraries/LibKeyboard/CharacterMap.cpp

+ 4 - 0
Libraries/LibKeyboard/CharacterMap.cpp

@@ -82,6 +82,10 @@ u32 CharacterMap::get_char(KeyEvent event)
     if (event.e0_prefix && event.key == Key_Slash) {
     if (event.e0_prefix && event.key == Key_Slash) {
         // If Key_Slash (scancode = 0x35) mapped to other form "/", we fix num pad key of "/" with this case.
         // If Key_Slash (scancode = 0x35) mapped to other form "/", we fix num pad key of "/" with this case.
         code_point = '/';
         code_point = '/';
+    } else if (event.e0_prefix) {
+        // Except for `keypad-/`, all e0 scan codes are not actually characters. i.e., `keypad-0` and
+        // `Insert` have the same scancode except for the prefix, but insert should not have a code_point.
+        code_point = 0;
     }
     }
 
 
     return code_point;
     return code_point;