From 993cf0bcdc5c6ff981427764d3b21a1e38e7c1b7 Mon Sep 17 00:00:00 2001 From: Elias Daler Date: Tue, 3 Apr 2018 01:16:06 +0300 Subject: [PATCH] Correct initialization of mapping arrays --- src/SFML/Window/Unix/KeyboardImpl.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/SFML/Window/Unix/KeyboardImpl.cpp b/src/SFML/Window/Unix/KeyboardImpl.cpp index 5f89d617..e830b4b1 100644 --- a/src/SFML/Window/Unix/KeyboardImpl.cpp +++ b/src/SFML/Window/Unix/KeyboardImpl.cpp @@ -38,8 +38,8 @@ namespace { const KeyCode NullKeyCode = 0; -KeyCode scancodeToKeycode[sf::Keyboard::ScanCodeCount] = { NullKeyCode }; ///< Mapping of SFML scancode to X11 KeyCode -sf::Keyboard::Scancode keycodeToScancode[256] = { sf::Keyboard::ScanUnknown}; ///< Mapping of X11 KeyCode to SFML scancode +KeyCode scancodeToKeycode[sf::Keyboard::ScanCodeCount]; ///< Mapping of SFML scancode to X11 KeyCode +sf::Keyboard::Scancode keycodeToScancode[256]; ///< Mapping of X11 KeyCode to SFML scancode bool isMappingInitialized = false; //////////////////////////////////////////////////////////// @@ -226,6 +226,12 @@ sf::Keyboard::Scancode translateKeyCode(Display* display, KeyCode keycode) void initMapping() { + for (int i = 0; i < 256; ++i) + scancodeToKeycode[i] = NullKeyCode; + + for (int i = 0; i < sf::Keyboard::ScanCodeCount; ++i) + keycodeToScancode[i] = sf::Keyboard::ScanUnknown; + Display* display = sf::priv::OpenDisplay(); // Find the X11 key code -> SFML key code mapping