Browse Source

Put KeyMappingX11 stuff inside its own scope

This avoids collisions with other "concurrent" key mappers.
Riteo 2 years ago
parent
commit
aa7cd71498
2 changed files with 13 additions and 14 deletions
  1. 0 14
      platform/linuxbsd/x11/key_mapping_x11.cpp
  2. 13 0
      platform/linuxbsd/x11/key_mapping_x11.h

+ 0 - 14
platform/linuxbsd/x11/key_mapping_x11.cpp

@@ -30,20 +30,6 @@
 
 
 #include "key_mapping_x11.h"
 #include "key_mapping_x11.h"
 
 
-#include "core/templates/hash_map.h"
-
-struct HashMapHasherKeys {
-	static _FORCE_INLINE_ uint32_t hash(const Key p_key) { return hash_fmix32(static_cast<uint32_t>(p_key)); }
-	static _FORCE_INLINE_ uint32_t hash(const char32_t p_uchar) { return hash_fmix32(p_uchar); }
-	static _FORCE_INLINE_ uint32_t hash(const unsigned p_key) { return hash_fmix32(p_key); }
-	static _FORCE_INLINE_ uint32_t hash(const KeySym p_key) { return hash_fmix32(p_key); }
-};
-
-HashMap<KeySym, Key, HashMapHasherKeys> xkeysym_map;
-HashMap<unsigned int, Key, HashMapHasherKeys> scancode_map;
-HashMap<Key, unsigned int, HashMapHasherKeys> scancode_map_inv;
-HashMap<KeySym, char32_t, HashMapHasherKeys> xkeysym_unicode_map;
-
 void KeyMappingX11::initialize() {
 void KeyMappingX11::initialize() {
 	// X11 Keysym to Godot Key map.
 	// X11 Keysym to Godot Key map.
 
 

+ 13 - 0
platform/linuxbsd/x11/key_mapping_x11.h

@@ -39,8 +39,21 @@
 #include <X11/keysymdef.h>
 #include <X11/keysymdef.h>
 
 
 #include "core/os/keyboard.h"
 #include "core/os/keyboard.h"
+#include "core/templates/hash_map.h"
 
 
 class KeyMappingX11 {
 class KeyMappingX11 {
+	struct HashMapHasherKeys {
+		static _FORCE_INLINE_ uint32_t hash(const Key p_key) { return hash_fmix32(static_cast<uint32_t>(p_key)); }
+		static _FORCE_INLINE_ uint32_t hash(const char32_t p_uchar) { return hash_fmix32(p_uchar); }
+		static _FORCE_INLINE_ uint32_t hash(const unsigned p_key) { return hash_fmix32(p_key); }
+		static _FORCE_INLINE_ uint32_t hash(const KeySym p_key) { return hash_fmix32(p_key); }
+	};
+
+	static inline HashMap<KeySym, Key, HashMapHasherKeys> xkeysym_map;
+	static inline HashMap<unsigned int, Key, HashMapHasherKeys> scancode_map;
+	static inline HashMap<Key, unsigned int, HashMapHasherKeys> scancode_map_inv;
+	static inline HashMap<KeySym, char32_t, HashMapHasherKeys> xkeysym_unicode_map;
+
 	KeyMappingX11() {}
 	KeyMappingX11() {}
 
 
 public:
 public: