Index: work/gtk/in_keyboard/in_keyboard.c =================================================================== --- work/gtk/in_keyboard/in_keyboard.c (revision 12748) +++ work/gtk/in_keyboard/in_keyboard.c (revision 12749) @@ -38,16 +38,23 @@ guint *keyvals; GdkKeymapKey *keys; gint n_entries; + unsigned short int ukv; - if (gdk_keymap_get_entries_for_keycode(gdk_keymap_get_default(), kev->hardware_keycode, &keys, &keyvals, &n_entries)) { - for(int n=0; n < n_entries; n++) { - printf(" %c \t%s \t%d \t%d\n", gdk_keyval_to_unicode(keyvals[n]), gdk_keyval_name(keyvals[n]), keys[n].group, keys[n].level); + kv = gdk_keyval_to_lower(kev->keyval); + ukv = gdk_keyval_to_unicode(kv); + if (ukv < 'a' || ukv > 'z') { + if (gdk_keymap_get_entries_for_keycode(gdk_keymap_get_default(), kev->hardware_keycode, &keys, &keyvals, &n_entries)) { + //for (int n = 0; n < n_entries; n++) { + // printf(" %c \t%s \t%d \t%d\n", gdk_keyval_to_unicode(keyvals[n]), gdk_keyval_name(keyvals[n]), keys[n].group, + // keys[n].level); + //} + kv = keyvals[0]; + //kv = keyvals[2 * kev->group]; + g_free(keys); + g_free(keyvals); } - kv = keyvals[2 * kev->group]; - printf(""); - g_free(keys); - g_free(keyvals); } + printf(""); } if (state & GDK_CONTROL_MASK) { printf("");