SDL key scancode fixes (7DRL 2026 hotfix)
This commit is contained in:
parent
120b0aa2a4
commit
cdae3b3ac9
1 changed files with 138 additions and 5 deletions
|
|
@ -870,14 +870,50 @@ int sdlScancodeToSfKey(int sdlScancode) {
|
||||||
case SDL_SCANCODE_RSHIFT: return Keyboard::RShift;
|
case SDL_SCANCODE_RSHIFT: return Keyboard::RShift;
|
||||||
case SDL_SCANCODE_RALT: return Keyboard::RAlt;
|
case SDL_SCANCODE_RALT: return Keyboard::RAlt;
|
||||||
case SDL_SCANCODE_RGUI: return Keyboard::RSystem;
|
case SDL_SCANCODE_RGUI: return Keyboard::RSystem;
|
||||||
|
case SDL_SCANCODE_MENU: return Keyboard::Menu;
|
||||||
|
// Punctuation and symbols
|
||||||
|
case SDL_SCANCODE_LEFTBRACKET: return Keyboard::LBracket;
|
||||||
|
case SDL_SCANCODE_RIGHTBRACKET: return Keyboard::RBracket;
|
||||||
|
case SDL_SCANCODE_SEMICOLON: return Keyboard::Semicolon;
|
||||||
|
case SDL_SCANCODE_COMMA: return Keyboard::Comma;
|
||||||
|
case SDL_SCANCODE_PERIOD: return Keyboard::Period;
|
||||||
|
case SDL_SCANCODE_APOSTROPHE: return Keyboard::Apostrophe;
|
||||||
|
case SDL_SCANCODE_SLASH: return Keyboard::Slash;
|
||||||
|
case SDL_SCANCODE_BACKSLASH: return Keyboard::Backslash;
|
||||||
|
case SDL_SCANCODE_GRAVE: return Keyboard::Grave;
|
||||||
|
case SDL_SCANCODE_EQUALS: return Keyboard::Equal;
|
||||||
|
case SDL_SCANCODE_MINUS: return Keyboard::Hyphen;
|
||||||
case SDL_SCANCODE_SPACE: return Keyboard::Space;
|
case SDL_SCANCODE_SPACE: return Keyboard::Space;
|
||||||
case SDL_SCANCODE_RETURN: return Keyboard::Enter;
|
case SDL_SCANCODE_RETURN: return Keyboard::Enter;
|
||||||
case SDL_SCANCODE_BACKSPACE: return Keyboard::Backspace;
|
case SDL_SCANCODE_BACKSPACE: return Keyboard::Backspace;
|
||||||
case SDL_SCANCODE_TAB: return Keyboard::Tab;
|
case SDL_SCANCODE_TAB: return Keyboard::Tab;
|
||||||
|
// Navigation
|
||||||
|
case SDL_SCANCODE_PAGEUP: return Keyboard::PageUp;
|
||||||
|
case SDL_SCANCODE_PAGEDOWN: return Keyboard::PageDown;
|
||||||
|
case SDL_SCANCODE_END: return Keyboard::End;
|
||||||
|
case SDL_SCANCODE_HOME: return Keyboard::Home;
|
||||||
|
case SDL_SCANCODE_INSERT: return Keyboard::Insert;
|
||||||
|
case SDL_SCANCODE_DELETE: return Keyboard::Delete;
|
||||||
case SDL_SCANCODE_LEFT: return Keyboard::Left;
|
case SDL_SCANCODE_LEFT: return Keyboard::Left;
|
||||||
case SDL_SCANCODE_RIGHT: return Keyboard::Right;
|
case SDL_SCANCODE_RIGHT: return Keyboard::Right;
|
||||||
case SDL_SCANCODE_UP: return Keyboard::Up;
|
case SDL_SCANCODE_UP: return Keyboard::Up;
|
||||||
case SDL_SCANCODE_DOWN: return Keyboard::Down;
|
case SDL_SCANCODE_DOWN: return Keyboard::Down;
|
||||||
|
// Numpad
|
||||||
|
case SDL_SCANCODE_KP_0: return Keyboard::Numpad0;
|
||||||
|
case SDL_SCANCODE_KP_1: return Keyboard::Numpad1;
|
||||||
|
case SDL_SCANCODE_KP_2: return Keyboard::Numpad2;
|
||||||
|
case SDL_SCANCODE_KP_3: return Keyboard::Numpad3;
|
||||||
|
case SDL_SCANCODE_KP_4: return Keyboard::Numpad4;
|
||||||
|
case SDL_SCANCODE_KP_5: return Keyboard::Numpad5;
|
||||||
|
case SDL_SCANCODE_KP_6: return Keyboard::Numpad6;
|
||||||
|
case SDL_SCANCODE_KP_7: return Keyboard::Numpad7;
|
||||||
|
case SDL_SCANCODE_KP_8: return Keyboard::Numpad8;
|
||||||
|
case SDL_SCANCODE_KP_9: return Keyboard::Numpad9;
|
||||||
|
case SDL_SCANCODE_KP_PLUS: return Keyboard::Add;
|
||||||
|
case SDL_SCANCODE_KP_MINUS: return Keyboard::Subtract;
|
||||||
|
case SDL_SCANCODE_KP_MULTIPLY: return Keyboard::Multiply;
|
||||||
|
case SDL_SCANCODE_KP_DIVIDE: return Keyboard::Divide;
|
||||||
|
// Function keys
|
||||||
case SDL_SCANCODE_F1: return Keyboard::F1;
|
case SDL_SCANCODE_F1: return Keyboard::F1;
|
||||||
case SDL_SCANCODE_F2: return Keyboard::F2;
|
case SDL_SCANCODE_F2: return Keyboard::F2;
|
||||||
case SDL_SCANCODE_F3: return Keyboard::F3;
|
case SDL_SCANCODE_F3: return Keyboard::F3;
|
||||||
|
|
@ -890,20 +926,117 @@ int sdlScancodeToSfKey(int sdlScancode) {
|
||||||
case SDL_SCANCODE_F10: return Keyboard::F10;
|
case SDL_SCANCODE_F10: return Keyboard::F10;
|
||||||
case SDL_SCANCODE_F11: return Keyboard::F11;
|
case SDL_SCANCODE_F11: return Keyboard::F11;
|
||||||
case SDL_SCANCODE_F12: return Keyboard::F12;
|
case SDL_SCANCODE_F12: return Keyboard::F12;
|
||||||
|
case SDL_SCANCODE_F13: return Keyboard::F13;
|
||||||
|
case SDL_SCANCODE_F14: return Keyboard::F14;
|
||||||
|
case SDL_SCANCODE_F15: return Keyboard::F15;
|
||||||
|
case SDL_SCANCODE_PAUSE: return Keyboard::Pause;
|
||||||
default: return Keyboard::Unknown;
|
default: return Keyboard::Unknown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int sfKeyToSdlScancode(int sfKey) {
|
int sfKeyToSdlScancode(int sfKey) {
|
||||||
// Reverse mapping (simplified)
|
|
||||||
switch (sfKey) {
|
switch (sfKey) {
|
||||||
case Keyboard::A: return SDL_SCANCODE_A;
|
case Keyboard::A: return SDL_SCANCODE_A;
|
||||||
case Keyboard::W: return SDL_SCANCODE_W;
|
case Keyboard::B: return SDL_SCANCODE_B;
|
||||||
case Keyboard::S: return SDL_SCANCODE_S;
|
case Keyboard::C: return SDL_SCANCODE_C;
|
||||||
case Keyboard::D: return SDL_SCANCODE_D;
|
case Keyboard::D: return SDL_SCANCODE_D;
|
||||||
case Keyboard::Space: return SDL_SCANCODE_SPACE;
|
case Keyboard::E: return SDL_SCANCODE_E;
|
||||||
|
case Keyboard::F: return SDL_SCANCODE_F;
|
||||||
|
case Keyboard::G: return SDL_SCANCODE_G;
|
||||||
|
case Keyboard::H: return SDL_SCANCODE_H;
|
||||||
|
case Keyboard::I: return SDL_SCANCODE_I;
|
||||||
|
case Keyboard::J: return SDL_SCANCODE_J;
|
||||||
|
case Keyboard::K: return SDL_SCANCODE_K;
|
||||||
|
case Keyboard::L: return SDL_SCANCODE_L;
|
||||||
|
case Keyboard::M: return SDL_SCANCODE_M;
|
||||||
|
case Keyboard::N: return SDL_SCANCODE_N;
|
||||||
|
case Keyboard::O: return SDL_SCANCODE_O;
|
||||||
|
case Keyboard::P: return SDL_SCANCODE_P;
|
||||||
|
case Keyboard::Q: return SDL_SCANCODE_Q;
|
||||||
|
case Keyboard::R: return SDL_SCANCODE_R;
|
||||||
|
case Keyboard::S: return SDL_SCANCODE_S;
|
||||||
|
case Keyboard::T: return SDL_SCANCODE_T;
|
||||||
|
case Keyboard::U: return SDL_SCANCODE_U;
|
||||||
|
case Keyboard::V: return SDL_SCANCODE_V;
|
||||||
|
case Keyboard::W: return SDL_SCANCODE_W;
|
||||||
|
case Keyboard::X: return SDL_SCANCODE_X;
|
||||||
|
case Keyboard::Y: return SDL_SCANCODE_Y;
|
||||||
|
case Keyboard::Z: return SDL_SCANCODE_Z;
|
||||||
|
case Keyboard::Num0: return SDL_SCANCODE_0;
|
||||||
|
case Keyboard::Num1: return SDL_SCANCODE_1;
|
||||||
|
case Keyboard::Num2: return SDL_SCANCODE_2;
|
||||||
|
case Keyboard::Num3: return SDL_SCANCODE_3;
|
||||||
|
case Keyboard::Num4: return SDL_SCANCODE_4;
|
||||||
|
case Keyboard::Num5: return SDL_SCANCODE_5;
|
||||||
|
case Keyboard::Num6: return SDL_SCANCODE_6;
|
||||||
|
case Keyboard::Num7: return SDL_SCANCODE_7;
|
||||||
|
case Keyboard::Num8: return SDL_SCANCODE_8;
|
||||||
|
case Keyboard::Num9: return SDL_SCANCODE_9;
|
||||||
case Keyboard::Escape: return SDL_SCANCODE_ESCAPE;
|
case Keyboard::Escape: return SDL_SCANCODE_ESCAPE;
|
||||||
// Add more as needed
|
case Keyboard::LControl: return SDL_SCANCODE_LCTRL;
|
||||||
|
case Keyboard::LShift: return SDL_SCANCODE_LSHIFT;
|
||||||
|
case Keyboard::LAlt: return SDL_SCANCODE_LALT;
|
||||||
|
case Keyboard::LSystem: return SDL_SCANCODE_LGUI;
|
||||||
|
case Keyboard::RControl: return SDL_SCANCODE_RCTRL;
|
||||||
|
case Keyboard::RShift: return SDL_SCANCODE_RSHIFT;
|
||||||
|
case Keyboard::RAlt: return SDL_SCANCODE_RALT;
|
||||||
|
case Keyboard::RSystem: return SDL_SCANCODE_RGUI;
|
||||||
|
case Keyboard::Menu: return SDL_SCANCODE_MENU;
|
||||||
|
case Keyboard::LBracket: return SDL_SCANCODE_LEFTBRACKET;
|
||||||
|
case Keyboard::RBracket: return SDL_SCANCODE_RIGHTBRACKET;
|
||||||
|
case Keyboard::Semicolon: return SDL_SCANCODE_SEMICOLON;
|
||||||
|
case Keyboard::Comma: return SDL_SCANCODE_COMMA;
|
||||||
|
case Keyboard::Period: return SDL_SCANCODE_PERIOD;
|
||||||
|
case Keyboard::Apostrophe: return SDL_SCANCODE_APOSTROPHE;
|
||||||
|
case Keyboard::Slash: return SDL_SCANCODE_SLASH;
|
||||||
|
case Keyboard::Backslash: return SDL_SCANCODE_BACKSLASH;
|
||||||
|
case Keyboard::Grave: return SDL_SCANCODE_GRAVE;
|
||||||
|
case Keyboard::Equal: return SDL_SCANCODE_EQUALS;
|
||||||
|
case Keyboard::Hyphen: return SDL_SCANCODE_MINUS;
|
||||||
|
case Keyboard::Space: return SDL_SCANCODE_SPACE;
|
||||||
|
case Keyboard::Enter: return SDL_SCANCODE_RETURN;
|
||||||
|
case Keyboard::Backspace: return SDL_SCANCODE_BACKSPACE;
|
||||||
|
case Keyboard::Tab: return SDL_SCANCODE_TAB;
|
||||||
|
case Keyboard::PageUp: return SDL_SCANCODE_PAGEUP;
|
||||||
|
case Keyboard::PageDown: return SDL_SCANCODE_PAGEDOWN;
|
||||||
|
case Keyboard::End: return SDL_SCANCODE_END;
|
||||||
|
case Keyboard::Home: return SDL_SCANCODE_HOME;
|
||||||
|
case Keyboard::Insert: return SDL_SCANCODE_INSERT;
|
||||||
|
case Keyboard::Delete: return SDL_SCANCODE_DELETE;
|
||||||
|
case Keyboard::Left: return SDL_SCANCODE_LEFT;
|
||||||
|
case Keyboard::Right: return SDL_SCANCODE_RIGHT;
|
||||||
|
case Keyboard::Up: return SDL_SCANCODE_UP;
|
||||||
|
case Keyboard::Down: return SDL_SCANCODE_DOWN;
|
||||||
|
case Keyboard::Numpad0: return SDL_SCANCODE_KP_0;
|
||||||
|
case Keyboard::Numpad1: return SDL_SCANCODE_KP_1;
|
||||||
|
case Keyboard::Numpad2: return SDL_SCANCODE_KP_2;
|
||||||
|
case Keyboard::Numpad3: return SDL_SCANCODE_KP_3;
|
||||||
|
case Keyboard::Numpad4: return SDL_SCANCODE_KP_4;
|
||||||
|
case Keyboard::Numpad5: return SDL_SCANCODE_KP_5;
|
||||||
|
case Keyboard::Numpad6: return SDL_SCANCODE_KP_6;
|
||||||
|
case Keyboard::Numpad7: return SDL_SCANCODE_KP_7;
|
||||||
|
case Keyboard::Numpad8: return SDL_SCANCODE_KP_8;
|
||||||
|
case Keyboard::Numpad9: return SDL_SCANCODE_KP_9;
|
||||||
|
case Keyboard::Add: return SDL_SCANCODE_KP_PLUS;
|
||||||
|
case Keyboard::Subtract: return SDL_SCANCODE_KP_MINUS;
|
||||||
|
case Keyboard::Multiply: return SDL_SCANCODE_KP_MULTIPLY;
|
||||||
|
case Keyboard::Divide: return SDL_SCANCODE_KP_DIVIDE;
|
||||||
|
case Keyboard::F1: return SDL_SCANCODE_F1;
|
||||||
|
case Keyboard::F2: return SDL_SCANCODE_F2;
|
||||||
|
case Keyboard::F3: return SDL_SCANCODE_F3;
|
||||||
|
case Keyboard::F4: return SDL_SCANCODE_F4;
|
||||||
|
case Keyboard::F5: return SDL_SCANCODE_F5;
|
||||||
|
case Keyboard::F6: return SDL_SCANCODE_F6;
|
||||||
|
case Keyboard::F7: return SDL_SCANCODE_F7;
|
||||||
|
case Keyboard::F8: return SDL_SCANCODE_F8;
|
||||||
|
case Keyboard::F9: return SDL_SCANCODE_F9;
|
||||||
|
case Keyboard::F10: return SDL_SCANCODE_F10;
|
||||||
|
case Keyboard::F11: return SDL_SCANCODE_F11;
|
||||||
|
case Keyboard::F12: return SDL_SCANCODE_F12;
|
||||||
|
case Keyboard::F13: return SDL_SCANCODE_F13;
|
||||||
|
case Keyboard::F14: return SDL_SCANCODE_F14;
|
||||||
|
case Keyboard::F15: return SDL_SCANCODE_F15;
|
||||||
|
case Keyboard::Pause: return SDL_SCANCODE_PAUSE;
|
||||||
default: return SDL_SCANCODE_UNKNOWN;
|
default: return SDL_SCANCODE_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue