From 6c5612c2e1df1e89388ffff97251f5328558f8e8 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 20 Aug 2008 09:21:44 -0700 Subject: [PATCH] XQuartz: Added window_item_modifiers defaults item (and option to localization) to change the modifier keys used for the windows menu. (cherry picked from commit e4110861d307a55d9032cb83cf024ec1f294e8d7) (cherry picked from commit fcfc05482a88696cb713c7a2ddfcf935ae8378a6) --- hw/xquartz/X11Application.h | 1 + hw/xquartz/X11Application.m | 20 ++++- hw/xquartz/X11Controller.m | 8 +- .../English.lproj/Localizable.strings | Bin 1078 -> 1212 bytes hw/xquartz/darwin.c | 16 ++-- hw/xquartz/darwin.h | 3 +- hw/xquartz/quartzKeyboard.c | 72 ++++++++++-------- hw/xquartz/quartzKeyboard.h | 2 +- 8 files changed, 77 insertions(+), 45 deletions(-) diff --git a/hw/xquartz/X11Application.h b/hw/xquartz/X11Application.h index 22a8728a8..5d040de26 100644 --- a/hw/xquartz/X11Application.h +++ b/hw/xquartz/X11Application.h @@ -92,6 +92,7 @@ extern int quartzHasRoot, quartzEnableRootless; #define PREFS_FAKE_BUTTON2 "fake_button2" #define PREFS_FAKE_BUTTON3 "fake_button3" #define PREFS_APPKIT_MODIFIERS "appkit_modifiers" +#define PREFS_WINDOW_ITEM_MODIFIERS "window_item_modifiers" #define PREFS_ROOTLESS "rootless" #define PREFS_FULLSCREEN_HOTKEYS "fullscreen_hotkeys" #define PREFS_SWAP_ALT_META "swap_alt_meta" diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index a5d412259..eeffd8c18 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -608,6 +608,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { - (void) read_defaults { + NSString *nsstr; const char *tem; quartzUseSysBeep = [self prefs_get_boolean:@PREFS_SYSBEEP @@ -631,13 +632,26 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { fake2 = [self prefs_get_string:@PREFS_FAKE_BUTTON2 default:NULL]; fake3 = [self prefs_get_string:@PREFS_FAKE_BUTTON3 default:NULL]; - if (fake2 != NULL) darwinFakeMouse2Mask = DarwinParseModifierList(fake2); - if (fake3 != NULL) darwinFakeMouse3Mask = DarwinParseModifierList(fake3); + if (fake2 != NULL) darwinFakeMouse2Mask = DarwinParseModifierList(fake2, TRUE); + if (fake3 != NULL) darwinFakeMouse3Mask = DarwinParseModifierList(fake3, TRUE); } tem = [self prefs_get_string:@PREFS_APPKIT_MODIFIERS default:NULL]; - if (tem != NULL) darwinAppKitModMask = DarwinParseModifierList(tem); + if (tem != NULL) darwinAppKitModMask = DarwinParseModifierList(tem, TRUE); + tem = [self prefs_get_string:@PREFS_WINDOW_ITEM_MODIFIERS default:NULL]; + if (tem != NULL) { + windowItemModMask = DarwinParseModifierList(tem, FALSE); + } else { + nsstr = NSLocalizedString (@"window item modifiers", @"window item modifiers"); + if(nsstr != NULL) { + tem = [nsstr UTF8String]; + if((tem != NULL) && strcmp(tem, "window item modifiers")) { + windowItemModMask = DarwinParseModifierList(tem, FALSE); + } + } + } + X11EnableKeyEquivalents = [self prefs_get_boolean:@PREFS_KEYEQUIVS default:X11EnableKeyEquivalents]; diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m index 107d8ee9b..682a6922a 100644 --- a/hw/xquartz/X11Controller.m +++ b/hw/xquartz/X11Controller.m @@ -129,7 +129,7 @@ NSMenu *menu; NSMenuItem *item; int first, count, i; - + menu = [window_separator menu]; first = [menu indexOfItem:window_separator] + 1; count = [list count]; @@ -142,14 +142,18 @@ item = (NSMenuItem *) [menu addItemWithTitle:name action:@selector (item_selected:) keyEquivalent:shortcut]; + + [item setKeyEquivalentModifierMask:(NSUInteger) windowItemModMask]; [item setTarget:self]; [item setTag:i]; [item setEnabled:YES]; - + item = (NSMenuItem *) [dock_menu insertItemWithTitle:name action:@selector (item_selected:) keyEquivalent:shortcut atIndex:i]; + + [item setKeyEquivalentModifierMask:(NSUInteger) windowItemModMask]; [item setTarget:self]; [item setTag:i]; [item setEnabled:YES]; diff --git a/hw/xquartz/bundle/Resources/English.lproj/Localizable.strings b/hw/xquartz/bundle/Resources/English.lproj/Localizable.strings index 63a1352555815c3a1f663a11e53181f56d25b72a..439bb6bcbf1e1939fc0e9870d4aa0061c3e7fdad 100644 GIT binary patch delta 143 zcmb8mF$%&k6adgS2x?C8$=Ib^7x6G+Dr86lRp{uIoSZzIXXxAC_w+k|ro&s3j0Ry- mEsAavs+U<4ny#oGs@du(3`R-bak6j~vb(NnZWhNPyGVaqjTpZG delta 7 OcmdnPxs79k84Calj{