X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fkeyboard%2Ftranslate.c;h=25e1c6a6a0e388819ca117f4b88894537bd0977f;hb=6be319c22a660dbdc9b84a3841a4ec6e86a6d002;hp=75c077fda0beab6f3da2c38eac49c707b669cdcd;hpb=739c958ac58154f8b1896113701e1c7f580d4cde;p=chaz%2Fopenbox diff --git a/plugins/keyboard/translate.c b/plugins/keyboard/translate.c index 75c077fd..25e1c6a6 100644 --- a/plugins/keyboard/translate.c +++ b/plugins/keyboard/translate.c @@ -1,17 +1,20 @@ #include "../../kernel/openbox.h" -#include "keyboard.h" #include #include -guint keyboard_translate_modifier(char *str) +static guint translate_modifier(char *str) { - if (!strcmp("Mod1", str) || !strcmp("A", str)) return Mod1Mask; - else if (!strcmp("Mod2", str)) return Mod2Mask; - else if (!strcmp("Mod3", str)) return Mod3Mask; - else if (!strcmp("Mod4", str) || !strcmp("W", str)) return Mod4Mask; - else if (!strcmp("Mod5", str)) return Mod5Mask; - else if (!strcmp("C", str)) return ControlMask; - else if (!strcmp("S", str)) return ShiftMask; + if (!g_ascii_strcasecmp("Mod1", str) || + !g_ascii_strcasecmp("A", str)) return Mod1Mask; + else if (!g_ascii_strcasecmp("Mod2", str)) return Mod2Mask; + else if (!g_ascii_strcasecmp("Mod3", str)) return Mod3Mask; + else if (!g_ascii_strcasecmp("Mod4", str) || + !g_ascii_strcasecmp("W", str)) return Mod4Mask; + else if (!g_ascii_strcasecmp("Mod5", str)) return Mod5Mask; + else if (!g_ascii_strcasecmp("Control", str) || + !g_ascii_strcasecmp("C", str)) return ControlMask; + else if (!g_ascii_strcasecmp("Shift", str) || + !g_ascii_strcasecmp("S", str)) return ShiftMask; g_warning("Invalid modifier '%s' in binding.", str); return 0; } @@ -36,7 +39,7 @@ gboolean translate_key(char *str, guint *state, guint *keycode) /* figure out the mod mask */ *state = 0; for (i = 0; parsed[i] != l; ++i) { - guint m = keyboard_translate_modifier(parsed[i]); + guint m = translate_modifier(parsed[i]); if (!m) goto translation_fail; *state |= m; } @@ -48,7 +51,7 @@ gboolean translate_key(char *str, guint *state, guint *keycode) goto translation_fail; } *keycode = XKeysymToKeycode(ob_display, sym); - if (!keycode) { + if (!*keycode) { g_warning("Key '%s' does not exist on the display.", l); goto translation_fail; }