]> Pileus Git - ~andy/gtk/commitdiff
Hook up xkb_keysym_to_string and xkb_string_to_keysym
authorKristian Høgsberg <krh@bitplanet.net>
Fri, 7 Jan 2011 19:21:56 +0000 (14:21 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 5 Feb 2011 21:11:55 +0000 (16:11 -0500)
gdk/wayland/gdkdisplaymanager-wayland.c

index 1b48014cdf3b6cad672bda5e69e30c88d5f20141..25aa6fb9896308f4bab21fa1e374c5fb9b2b225c 100644 (file)
@@ -29,6 +29,8 @@
 
 #include "gdkinternals.h"
 
+#include <X11/extensions/XKBcommon.h>
+
 typedef struct _GdkWaylandDisplayManager GdkWaylandDisplayManager;
 typedef struct _GdkWaylandDisplayManagerClass GdkWaylandDisplayManagerClass;
 
@@ -108,14 +110,32 @@ static guint
 gdk_wayland_display_manager_lookup_keyval (GdkDisplayManager *manager,
                                           const gchar       *keyval_name)
 {
-  return /* XStringToKeysym (keyval_name); */ 0;
+  g_return_val_if_fail (keyval_name != NULL, 0);
+
+  return xkb_string_to_keysym(keyval_name);
 }
 
 static gchar *
 gdk_wayland_display_manager_get_keyval_name (GdkDisplayManager *manager,
                                             guint              keyval)
 {
-  return NULL;
+  static char buf[128];
+
+  switch (keyval)
+    {
+    case GDK_KEY_Page_Up:
+      return "Page_Up";
+    case GDK_KEY_Page_Down:
+      return "Page_Down";
+    case GDK_KEY_KP_Page_Up:
+      return "KP_Page_Up";
+    case GDK_KEY_KP_Page_Down:
+      return "KP_Page_Down";
+    }
+
+  xkb_keysym_to_string(keyval, buf, sizeof buf);
+
+  return buf;
 }
 
 static void