Skip to content

Commit a2cb3fa

Browse files
committed
Fix numpad 0 and . key handling
Fixes #146.
1 parent 166710f commit a2cb3fa

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ android {
1313
applicationId "com.termux"
1414
minSdkVersion 21
1515
targetSdkVersion 24
16-
versionCode 40
17-
versionName "0.40"
16+
versionCode 41
17+
versionName "0.41"
1818

1919
ndk {
2020
moduleName "libtermux"

app/src/main/java/com/termux/terminal/KeyHandler.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,6 @@ public static String getCode(int keyCode, int keyMode, boolean cursorApp, boolea
219219
case KEYCODE_FORWARD_DEL:
220220
return transformForModifiers("\033[3", keyMode, '~');
221221

222-
case KEYCODE_NUMPAD_DOT:
223-
return keypadApplication ? "\033On" : "\033[3~";
224-
225222
case KEYCODE_PAGE_UP:
226223
return "\033[5~";
227224
case KEYCODE_PAGE_DOWN:
@@ -251,12 +248,14 @@ public static String getCode(int keyCode, int keyMode, boolean cursorApp, boolea
251248
return keypadApplication ? transformForModifiers("\033O", keyMode, 'k') : "+";
252249
case KEYCODE_NUMPAD_COMMA:
253250
return ",";
251+
case KEYCODE_NUMPAD_DOT:
252+
return keypadApplication ? "\033On" : ".";
254253
case KEYCODE_NUMPAD_SUBTRACT:
255254
return keypadApplication ? transformForModifiers("\033O", keyMode, 'm') : "-";
256255
case KEYCODE_NUMPAD_DIVIDE:
257256
return keypadApplication ? transformForModifiers("\033O", keyMode, 'o') : "/";
258257
case KEYCODE_NUMPAD_0:
259-
return keypadApplication ? transformForModifiers("\033O", keyMode, 'p') : "1";
258+
return keypadApplication ? transformForModifiers("\033O", keyMode, 'p') : "0";
260259
case KEYCODE_NUMPAD_1:
261260
return keypadApplication ? transformForModifiers("\033O", keyMode, 'q') : "1";
262261
case KEYCODE_NUMPAD_2:

app/src/test/java/com/termux/terminal/KeyHandlerTest.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -173,5 +173,19 @@ public void testKeyCodes() {
173173
assertKeysEquals("\033[21;2~", KeyHandler.getCode(KeyEvent.KEYCODE_F10, KeyHandler.KEYMOD_SHIFT, false, false));
174174
assertKeysEquals("\033[23;2~", KeyHandler.getCode(KeyEvent.KEYCODE_F11, KeyHandler.KEYMOD_SHIFT, false, false));
175175
assertKeysEquals("\033[24;2~", KeyHandler.getCode(KeyEvent.KEYCODE_F12, KeyHandler.KEYMOD_SHIFT, false, false));
176-
}
176+
177+
assertKeysEquals("0", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_0, 0, false, false));
178+
assertKeysEquals("1", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_1, 0, false, false));
179+
assertKeysEquals("2", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_2, 0, false, false));
180+
assertKeysEquals("3", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_3, 0, false, false));
181+
assertKeysEquals("4", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_4, 0, false, false));
182+
assertKeysEquals("5", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_5, 0, false, false));
183+
assertKeysEquals("6", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_6, 0, false, false));
184+
assertKeysEquals("7", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_7, 0, false, false));
185+
assertKeysEquals("8", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_8, 0, false, false));
186+
assertKeysEquals("9", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_9, 0, false, false));
187+
assertKeysEquals(",", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_COMMA, 0, false, false));
188+
assertKeysEquals(".", KeyHandler.getCode(KeyEvent.KEYCODE_NUMPAD_DOT, 0, false, false));
189+
}
190+
177191
}

0 commit comments

Comments
 (0)