diff options
author | Elijah Newren <newren gmail com> | 2006-02-27 22:44:47 +0000 |
---|---|---|
committer | Elijah Newren <newren@src.gnome.org> | 2006-02-27 22:44:47 +0000 |
commit | 3e01e149eb58177405d2aea84ffb057f924cd128 (patch) | |
tree | 51763e1643a15098fc238417ed9f4c2f896b8dee /src/ui.c | |
parent | 04a4f7c3636602945fd4fcec3592d5eceaff0197 (diff) | |
download | metacity-3e01e149eb58177405d2aea84ffb057f924cd128.tar.gz |
Patch from Thomas Thurman to prevent setting cycle_windows to keybindings
2006-02-27 Elijah Newren <newren gmail com>
Patch from Thomas Thurman to prevent setting cycle_windows to
keybindings that won't work. #329676
* src/prefs.c (update_binding):
Make sure that bindings which require a modifier key are set to a
keybinding with one or else that the binding is reverted.
* src/ui.[ch] (meta_ui_accelerator_name):
New function
Diffstat (limited to 'src/ui.c')
-rw-r--r-- | src/ui.c | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -788,6 +788,43 @@ meta_ui_parse_accelerator (const char *accel, return TRUE; } +/* Caller responsible for freeing return string of meta_ui_accelerator_name! */ +gchar* +meta_ui_accelerator_name (unsigned int keysym, + MetaVirtualModifier mask) +{ + EggVirtualModifierType mods = 0; + + if (keysym == 0 && mask == 0) + { + return strdup ("disabled"); + } + + if (mask & META_VIRTUAL_SHIFT_MASK) + mods |= EGG_VIRTUAL_SHIFT_MASK; + if (mask & META_VIRTUAL_CONTROL_MASK) + mods |= EGG_VIRTUAL_CONTROL_MASK; + if (mask & META_VIRTUAL_ALT_MASK) + mods |= EGG_VIRTUAL_ALT_MASK; + if (mask & META_VIRTUAL_MOD2_MASK) + mods |= EGG_VIRTUAL_MOD2_MASK; + if (mask & META_VIRTUAL_MOD3_MASK) + mods |= EGG_VIRTUAL_MOD3_MASK; + if (mask & META_VIRTUAL_MOD4_MASK) + mods |= EGG_VIRTUAL_MOD4_MASK; + if (mask & META_VIRTUAL_MOD5_MASK) + mods |= EGG_VIRTUAL_MOD5_MASK; + if (mask & META_VIRTUAL_SUPER_MASK) + mods |= EGG_VIRTUAL_SUPER_MASK; + if (mask & META_VIRTUAL_HYPER_MASK) + mods |= EGG_VIRTUAL_HYPER_MASK; + if (mask & META_VIRTUAL_META_MASK) + mods |= EGG_VIRTUAL_META_MASK; + + return egg_virtual_accelerator_name (keysym, mods); + +} + gboolean meta_ui_parse_modifier (const char *accel, MetaVirtualModifier *mask) |