39
39
else if (!g_ascii_strcasecmp("Control", str) ||
40
40
!g_ascii_strcasecmp("C", str))
41
mask = modkeys_key_to_mask(OB_MODKEY_KEY_CONTROL);
41
mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_CONTROL);
42
42
else if (!g_ascii_strcasecmp("Alt", str) ||
43
43
!g_ascii_strcasecmp("A", str))
44
mask = modkeys_key_to_mask(OB_MODKEY_KEY_ALT);
44
mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_ALT);
45
45
else if (!g_ascii_strcasecmp("Meta", str) ||
46
46
!g_ascii_strcasecmp("M", str))
47
mask = modkeys_key_to_mask(OB_MODKEY_KEY_META);
47
mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_META);
48
48
/* W = windows key, is linked to the Super_L/R buttons */
49
49
else if (!g_ascii_strcasecmp("Super", str) ||
50
50
!g_ascii_strcasecmp("W", str))
51
mask = modkeys_key_to_mask(OB_MODKEY_KEY_SUPER);
51
mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SUPER);
52
52
else if (!g_ascii_strcasecmp("Shift", str) ||
53
53
!g_ascii_strcasecmp("S", str))
54
mask = modkeys_key_to_mask(OB_MODKEY_KEY_SHIFT);
54
mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SHIFT);
55
55
else if (!g_ascii_strcasecmp("Hyper", str) ||
56
56
!g_ascii_strcasecmp("H", str))
57
mask = modkeys_key_to_mask(OB_MODKEY_KEY_HYPER);
57
mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_HYPER);
59
59
g_message(_("Invalid modifier key \"%s\" in key/mouse binding"), str);
145
145
g_message(_("Invalid key name \"%s\" in key binding"), l);
146
146
goto translation_fail;
148
*keycode = XKeysymToKeycode(ob_display, sym);
148
*keycode = XKeysymToKeycode(obt_display, sym);
151
151
g_message(_("Requested key \"%s\" does not exist on the display"), l);
158
158
g_strfreev(parsed);
162
gchar *translate_keycode(guint keycode)
165
const gchar *ret = NULL;
167
if ((sym = XKeycodeToKeysym(ob_display, keycode, 0)) != NoSymbol)
168
ret = XKeysymToString(sym);
169
/* glib crashes in g_locale_to_utf8 if you pass it NULL here */
171
return g_locale_to_utf8(ret, -1, NULL, NULL, NULL);
176
gunichar translate_unichar(guint keycode)
181
if ((key = translate_keycode(keycode)) != NULL &&
182
/* don't accept keys that aren't a single letter, like "space" */
185
unikey = g_utf8_get_char_validated(key, -1);
186
if (unikey == (gunichar)-1 || unikey == (gunichar)-2 || unikey == 0)