Prechádzať zdrojové kódy

x11: Move KeySym to unicode converter out of x11 backend

To be used by the Wayland backend.
Jonas Ådahl 11 rokov pred
rodič
commit
2f71bfc152
4 zmenil súbory, kde vykonal 38 pridanie a 7 odobranie
  1. 2 2
      src/CMakeLists.txt
  2. 1 3
      src/x11_platform.h
  3. 2 2
      src/xkb_unicode.c
  4. 33 0
      src/xkb_unicode.h

+ 2 - 2
src/CMakeLists.txt

@@ -27,8 +27,8 @@ elseif (_GLFW_X11)
     set(glfw_HEADERS ${common_HEADERS} x11_platform.h linux_joystick.h
                      posix_time.h posix_tls.h)
     set(glfw_SOURCES ${common_SOURCES} x11_clipboard.c x11_gamma.c x11_init.c
-                     x11_monitor.c x11_window.c x11_unicode.c linux_joystick.c
-                     posix_time.c posix_tls.c)
+                     x11_monitor.c x11_window.c xkb_unicode.c xkb_unicode.h
+                     linux_joystick.c posix_time.c posix_tls.c)
 elseif (_GLFW_WAYLAND)
     set(glfw_HEADERS ${common_HEADERS} wl_platform.h linux_joystick.h
                      posix_time.h posix_tls.h)

+ 1 - 3
src/x11_platform.h

@@ -64,6 +64,7 @@
 
 #include "posix_time.h"
 #include "linux_joystick.h"
+#include "xkb_unicode.h"
 
 #define _GLFW_PLATFORM_WINDOW_STATE         _GLFWwindowX11  x11
 #define _GLFW_PLATFORM_LIBRARY_WINDOW_STATE _GLFWlibraryX11 x11
@@ -248,9 +249,6 @@ void _glfwInitGammaRamp(void);
 GLboolean _glfwSetVideoMode(_GLFWmonitor* monitor, const GLFWvidmode* desired);
 void _glfwRestoreVideoMode(_GLFWmonitor* monitor);
 
-// Unicode support
-long _glfwKeySym2Unicode(KeySym keysym);
-
 // Clipboard handling
 void _glfwHandleSelectionClear(XEvent* event);
 void _glfwHandleSelectionRequest(XEvent* event);

+ 2 - 2
src/x11_unicode.c → src/xkb_unicode.c

@@ -852,9 +852,9 @@ static const struct codepair {
 //////                       GLFW internal API                      //////
 //////////////////////////////////////////////////////////////////////////
 
-// Convert X11 KeySym to Unicode
+// Convert XKB KeySym to Unicode
 //
-long _glfwKeySym2Unicode(KeySym keysym)
+long _glfwKeySym2Unicode(unsigned int keysym)
 {
     int min = 0;
     int max = sizeof(keysymtab) / sizeof(struct codepair) - 1;

+ 33 - 0
src/xkb_unicode.h

@@ -0,0 +1,33 @@
+//========================================================================
+// GLFW 3.1 Linux - www.glfw.org
+//------------------------------------------------------------------------
+// Copyright (c) 2014 Jonas Ådahl <[email protected]>
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//    claim that you wrote the original software. If you use this software
+//    in a product, an acknowledgment in the product documentation would
+//    be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such, and must not
+//    be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source
+//    distribution.
+//
+//========================================================================
+
+#ifndef _xkb_unicode_h_
+#define _xkb_unicode_h_
+
+// Unicode support
+long _glfwKeySym2Unicode(unsigned int keysym);
+
+#endif // _xkb_unicode_h_