X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Ftranslate.c;h=b1c0edbf02b537dad239401a5654902ed6d94109;hb=9d1949f0b168650e38dcb9adf1ad93e8b90a9b44;hp=312d32923928e09c139d3ca9ed836428d7181f19;hpb=740c5b2a20d5110435d0874f8cc6a4c9dfd14777;p=chaz%2Fopenbox diff --git a/openbox/translate.c b/openbox/translate.c index 312d3292..b1c0edbf 100644 --- a/openbox/translate.c +++ b/openbox/translate.c @@ -1,6 +1,7 @@ /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- translate.c for the Openbox window manager + Copyright (c) 2006 Mikael Magnusson Copyright (c) 2003 Ben Jansens This program is free software; you can redistribute it and/or modify @@ -27,7 +28,8 @@ static guint translate_modifier(gchar *str) 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("Mod3", str) || + !g_ascii_strcasecmp("M", 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; @@ -51,16 +53,16 @@ gboolean translate_button(const gchar *str, guint *state, guint *button) /* first, find the button (last token) */ l = NULL; for (i = 0; parsed[i] != NULL; ++i) - l = parsed[i]; + l = parsed[i]; if (l == NULL) - goto translation_fail; + goto translation_fail; /* figure out the mod mask */ *state = 0; for (i = 0; parsed[i] != l; ++i) { - guint m = translate_modifier(parsed[i]); - if (!m) goto translation_fail; - *state |= m; + guint m = translate_modifier(parsed[i]); + if (!m) goto translation_fail; + *state |= m; } /* figure out the button */ @@ -71,8 +73,8 @@ gboolean translate_button(const gchar *str, guint *state, guint *button) else if (!g_ascii_strcasecmp("Down", l)) *button = 5; else if (!g_ascii_strncasecmp("Button", l, 6)) *button = atoi(l+6); if (!*button) { - g_warning("Invalid button '%s' in pointer binding.", l); - goto translation_fail; + g_warning("Invalid button '%s' in pointer binding.", l); + goto translation_fail; } ret = TRUE; @@ -95,16 +97,16 @@ gboolean translate_key(const gchar *str, guint *state, guint *keycode) /* first, find the key (last token) */ l = NULL; for (i = 0; parsed[i] != NULL; ++i) - l = parsed[i]; + l = parsed[i]; if (l == NULL) - goto translation_fail; + goto translation_fail; /* figure out the mod mask */ *state = 0; for (i = 0; parsed[i] != l; ++i) { - guint m = translate_modifier(parsed[i]); - if (!m) goto translation_fail; - *state |= m; + guint m = translate_modifier(parsed[i]); + if (!m) goto translation_fail; + *state |= m; } if (!g_ascii_strncasecmp("0x", l, 2)) { @@ -126,8 +128,8 @@ gboolean translate_key(const gchar *str, guint *state, guint *keycode) *keycode = XKeysymToKeycode(ob_display, sym); } if (!*keycode) { - g_warning("Key '%s' does not exist on the display.", l); - goto translation_fail; + g_warning("Key '%s' does not exist on the display.", l); + goto translation_fail; } ret = TRUE;