Correctly send \r instead of \n for returns and fix some other combinations. Fixes #76.

This commit is contained in:
Florian Nücke
2022-01-07 07:53:10 +01:00
parent 708745def2
commit ed81efb4d6

View File

@@ -9,7 +9,7 @@ public final class TerminalInput {
private static final Int2ObjectArrayMap<Int2ObjectArrayMap<byte[]>> KEYCODE_SEQUENCES = new Int2ObjectArrayMap<>();
static {
addSequence(GLFW.GLFW_KEY_ENTER, '\n');
addSequence(GLFW.GLFW_KEY_ENTER, '\r');
addSequence(GLFW.GLFW_KEY_TAB, '\t');
addSequence(GLFW.GLFW_KEY_BACKSPACE, '\b');
@@ -21,26 +21,54 @@ public final class TerminalInput {
addSequence(GLFW.GLFW_KEY_PAGE_UP, "\033[5~");
addSequence(GLFW.GLFW_KEY_PAGE_DOWN, "\033[6~");
addSequence(GLFW.GLFW_KEY_F1, "\033[11~");
addSequence(GLFW.GLFW_KEY_F2, "\033[12~");
addSequence(GLFW.GLFW_KEY_F3, "\033[13~");
addSequence(GLFW.GLFW_KEY_F4, "\033[14~");
addSequence(GLFW.GLFW_KEY_F5, "\033[15~");
addSequence(GLFW.GLFW_KEY_F6, "\033[17~");
addSequence(GLFW.GLFW_KEY_F7, "\033[18~");
addSequence(GLFW.GLFW_KEY_F8, "\033[19~");
addSequence(GLFW.GLFW_KEY_F9, "\033[20~");
addSequence(GLFW.GLFW_KEY_F10, "\033[21~");
addSequence(GLFW.GLFW_KEY_F11, "\033[23~");
addSequence(GLFW.GLFW_KEY_F12, "\033[24~");
addSequence(GLFW.GLFW_KEY_UP, "\033[A");
addSequence(GLFW.GLFW_KEY_DOWN, "\033[B");
addSequence(GLFW.GLFW_KEY_RIGHT, "\033[C");
addSequence(GLFW.GLFW_KEY_LEFT, "\033[D");
for (int i = 'A'; i <= 'Z'; i++) {
addSequence(GLFW.GLFW_MOD_CONTROL,
addSequence(
GLFW.GLFW_MOD_CONTROL,
GLFW.GLFW_KEY_A + (i - 'A'),
(byte) (1 + i - 'A'));
addSequence(GLFW.GLFW_MOD_CONTROL | GLFW.GLFW_MOD_ALT,
(byte) (1 + i - 'A')
);
addSequence(
GLFW.GLFW_MOD_CONTROL | GLFW.GLFW_MOD_SHIFT,
GLFW.GLFW_KEY_A + (i - 'A'),
(byte) 27, (byte) ('a' + i - 'A'));
addSequence(GLFW.GLFW_MOD_CONTROL | GLFW.GLFW_MOD_ALT | GLFW.GLFW_MOD_SHIFT,
(byte) (1 + i - 'A')
);
addSequence(
GLFW.GLFW_MOD_ALT,
GLFW.GLFW_KEY_A + (i - 'A'),
(byte) 27, (byte) i);
(byte) '\033', (byte) ('a' + i - 'A')
);
addSequence(
GLFW.GLFW_MOD_ALT | GLFW.GLFW_MOD_SHIFT,
GLFW.GLFW_KEY_A + (i - 'A'),
(byte) '\033', (byte) (i + 128)
);
}
addSequence(GLFW.GLFW_MOD_CONTROL, GLFW.GLFW_KEY_LEFT_BRACKET, (byte) 27);
addSequence(GLFW.GLFW_MOD_CONTROL, GLFW.GLFW_KEY_BACKSLASH, (byte) 28);
addSequence(GLFW.GLFW_MOD_CONTROL, GLFW.GLFW_KEY_RIGHT_BRACKET, (byte) 29);
addSequence(GLFW.GLFW_MOD_CONTROL, GLFW.GLFW_KEY_LEFT_BRACKET, (byte) '\033');
addSequence(GLFW.GLFW_MOD_CONTROL | GLFW.GLFW_MOD_SHIFT, GLFW.GLFW_KEY_LEFT_BRACKET, (byte) '\033');
addSequence(GLFW.GLFW_MOD_CONTROL, GLFW.GLFW_KEY_BACKSLASH, (byte) '\034');
addSequence(GLFW.GLFW_MOD_CONTROL | GLFW.GLFW_MOD_SHIFT, GLFW.GLFW_KEY_BACKSLASH, (byte) '\034');
addSequence(GLFW.GLFW_MOD_CONTROL, GLFW.GLFW_KEY_RIGHT_BRACKET, (byte) '\035');
addSequence(GLFW.GLFW_MOD_CONTROL | GLFW.GLFW_MOD_SHIFT, GLFW.GLFW_KEY_RIGHT_BRACKET, (byte) '\035');
}
///////////////////////////////////////////////////////////////////