diff --git a/src/add-ons/input_server/devices/keyboard/Keymap.cpp b/src/add-ons/input_server/devices/keyboard/Keymap.cpp index d7183a65cc..edb7be8699 100644 --- a/src/add-ons/input_server/devices/keyboard/Keymap.cpp +++ b/src/add-ons/input_server/devices/keyboard/Keymap.cpp @@ -159,14 +159,30 @@ Keymap::Modifier(uint32 keyCode) uint32 Keymap::KeyForModifier(uint32 modifier) { - if (modifier == B_LEFT_COMMAND_KEY) + if (modifier == B_CAPS_LOCK) + return fKeys.caps_key; + if (modifier == B_NUM_LOCK) + return fKeys.num_key; + if (modifier == B_SCROLL_LOCK) + return fKeys.scroll_key; + if (modifier == B_LEFT_SHIFT_KEY || modifier == B_SHIFT_KEY) + return fKeys.left_shift_key; + if (modifier == B_RIGHT_SHIFT_KEY) + return fKeys.right_shift_key; + if (modifier == B_LEFT_COMMAND_KEY || modifier == B_COMMAND_KEY) return fKeys.left_command_key; if (modifier == B_RIGHT_COMMAND_KEY) return fKeys.right_command_key; - if (modifier == B_LEFT_CONTROL_KEY) + if (modifier == B_LEFT_CONTROL_KEY || modifier == B_CONTROL_KEY) return fKeys.left_control_key; if (modifier == B_RIGHT_CONTROL_KEY) return fKeys.right_control_key; + if (modifier == B_LEFT_OPTION_KEY || modifier == B_OPTION_KEY) + return fKeys.left_option_key; + if (modifier == B_RIGHT_OPTION_KEY) + return fKeys.right_option_key; + if (modifier == B_MENU_KEY) + return fKeys.menu_key; return 0; }