From 009aa366c6edea3f78417173a31c4815220c2de2 Mon Sep 17 00:00:00 2001 From: Alexandre Deckner Date: Thu, 21 Aug 2008 00:59:30 +0000 Subject: [PATCH] - Changed Alt/Ctrl mode handling in Menu prefs, BMenu and Appearance prefs as discussed in #2139 comments. This allow using Alt-Gr in either Ctrl or Alt mode. Appearance needs a serious style cleanup, comming next :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27095 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/Menu.cpp | 2 +- src/preferences/appearance/MenuView.cpp | 10 ++++------ src/preferences/menu/MenuSettings.cpp | 9 +++------ 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index 4e499e7b61..3770c10c1c 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -348,7 +348,7 @@ BMenu::AttachedToWindow() char *chars = NULL; get_key_map(&keys, &chars); if (keys == NULL || keys->left_command_key != 0x5d - || keys->right_command_key != 0x5f) + || keys->left_control_key != 0x5c) sAltAsCommandKey = false; free(chars); free(keys); diff --git a/src/preferences/appearance/MenuView.cpp b/src/preferences/appearance/MenuView.cpp index 1ec68b17e2..455746caf5 100644 --- a/src/preferences/appearance/MenuView.cpp +++ b/src/preferences/appearance/MenuView.cpp @@ -318,11 +318,13 @@ void MenuView::MarkCommandKey(void) get_key_map(&keys, &chars); - altcommand=(keys->left_command_key==0x5d) && (keys->right_command_key==0x5f); + bool altAsShortcut = (keys->left_command_key == 0x5d) + && (keys->left_control_key == 0x5c); + free(chars); free(keys); - if(altcommand) + if(altAsShortcut) altcmd->SetValue(B_CONTROL_ON); else ctrlcmd->SetValue(B_CONTROL_ON); @@ -333,18 +335,14 @@ void MenuView::SetCommandKey(bool use_alt) if(use_alt) { set_modifier_key(B_LEFT_COMMAND_KEY, 0x5d); - set_modifier_key(B_RIGHT_COMMAND_KEY, 0x5f); set_modifier_key(B_LEFT_CONTROL_KEY, 0x5c); - set_modifier_key(B_RIGHT_OPTION_KEY, 0x60); be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED)); } else { set_modifier_key(B_LEFT_COMMAND_KEY, 0x5c); - set_modifier_key(B_RIGHT_COMMAND_KEY, 0x60); set_modifier_key(B_LEFT_CONTROL_KEY, 0x5d); - set_modifier_key(B_RIGHT_OPTION_KEY, 0x5f); be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED)); } diff --git a/src/preferences/menu/MenuSettings.cpp b/src/preferences/menu/MenuSettings.cpp index 9dc5b2625f..8cf93dbdd1 100644 --- a/src/preferences/menu/MenuSettings.cpp +++ b/src/preferences/menu/MenuSettings.cpp @@ -78,8 +78,9 @@ MenuSettings::AltAsShortcut() const char* chars; get_key_map(&keys, &chars); - bool altAsShortcut = (keys->left_command_key == 0x5d) - && (keys->right_command_key == 0x5f); + + bool altAsShortcut = (keys->left_command_key == 0x5d) + && (keys->left_control_key == 0x5c); free(chars); free(keys); @@ -94,15 +95,11 @@ MenuSettings::SetAltAsShortcut(bool altAsShortcut) if (altAsShortcut) { // This might not be the same for all keyboards set_modifier_key(B_LEFT_COMMAND_KEY, 0x5d); - set_modifier_key(B_RIGHT_COMMAND_KEY, 0x5f); set_modifier_key(B_LEFT_CONTROL_KEY, 0x5c); - set_modifier_key(B_RIGHT_OPTION_KEY, 0x60); } else { // This might not be the same for all keyboards set_modifier_key(B_LEFT_COMMAND_KEY, 0x5c); - set_modifier_key(B_RIGHT_COMMAND_KEY, 0x60); set_modifier_key(B_LEFT_CONTROL_KEY, 0x5d); - set_modifier_key(B_RIGHT_OPTION_KEY, 0x5f); } be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED)); }