From 3aed491e904ecb946a9328bbcc090ead32a8a24e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20Paul=20Ku=CC=88hne?= Date: Mon, 3 Oct 2011 20:43:03 +0200 Subject: [PATCH] macosx: fixed handling of plus and minus keys --- modules/gui/macosx/intf.m | 16 ++++++++++++++-- modules/gui/macosx/simple_prefs.m | 18 +++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index 7071ead215..772e6cd12b 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -1131,12 +1131,24 @@ unsigned int CocoaKeyToVLC( unichar i_key ) - (NSString *)VLCKeyToString:(NSString *)theString { if (![theString isEqualToString:@""]) { + if ([theString characterAtIndex:([theString length] - 1)] != 0x2b) + theString = [theString stringByReplacingOccurrencesOfString:@"+" withString:@""]; + else + { + theString = [theString stringByReplacingOccurrencesOfString:@"+" withString:@""]; + theString = [NSString stringWithFormat:@"%@+", theString]; + } + if ([theString characterAtIndex:([theString length] - 1)] != 0x2d) + theString = [theString stringByReplacingOccurrencesOfString:@"-" withString:@""]; + else + { + theString = [theString stringByReplacingOccurrencesOfString:@"-" withString:@""]; + theString = [NSString stringWithFormat:@"%@-", theString]; + } theString = [theString stringByReplacingOccurrencesOfString:@"Command" withString:@""]; theString = [theString stringByReplacingOccurrencesOfString:@"Alt" withString:@""]; theString = [theString stringByReplacingOccurrencesOfString:@"Shift" withString:@""]; theString = [theString stringByReplacingOccurrencesOfString:@"Ctrl" withString:@""]; - theString = [theString stringByReplacingOccurrencesOfString:@"+" withString:@""]; - theString = [theString stringByReplacingOccurrencesOfString:@"-" withString:@""]; } if ([theString length] > 1) { diff --git a/modules/gui/macosx/simple_prefs.m b/modules/gui/macosx/simple_prefs.m index 7bf0b2415a..90be645b54 100644 --- a/modules/gui/macosx/simple_prefs.m +++ b/modules/gui/macosx/simple_prefs.m @@ -79,14 +79,26 @@ static VLCSimplePrefs *_o_sharedInstance = nil; - (NSString *)OSXStringKeyToString:(NSString *)theString { if (![theString isEqualToString:@""]) { + /* remove cruft */ + if ([theString characterAtIndex:([theString length] - 1)] != 0x2b) + theString = [theString stringByReplacingOccurrencesOfString:@"+" withString:@""]; + else + { + theString = [theString stringByReplacingOccurrencesOfString:@"+" withString:@""]; + theString = [NSString stringWithFormat:@"%@+", theString]; + } + if ([theString characterAtIndex:([theString length] - 1)] != 0x2d) + theString = [theString stringByReplacingOccurrencesOfString:@"-" withString:@""]; + else + { + theString = [theString stringByReplacingOccurrencesOfString:@"-" withString:@""]; + theString = [NSString stringWithFormat:@"%@-", theString]; + } /* modifiers */ theString = [theString stringByReplacingOccurrencesOfString:@"Command" withString: [NSString stringWithUTF8String: "\xE2\x8C\x98"]]; theString = [theString stringByReplacingOccurrencesOfString:@"Alt" withString: [NSString stringWithUTF8String: "\xE2\x8C\xA5"]]; theString = [theString stringByReplacingOccurrencesOfString:@"Shift" withString: [NSString stringWithUTF8String: "\xE2\x87\xA7"]]; theString = [theString stringByReplacingOccurrencesOfString:@"Ctrl" withString: [NSString stringWithUTF8String: "\xE2\x8C\x83"]]; - /* remove cruft */ - theString = [theString stringByReplacingOccurrencesOfString:@"+" withString:@""]; - theString = [theString stringByReplacingOccurrencesOfString:@"-" withString:@""]; /* show non-character keys correctly */ theString = [theString stringByReplacingOccurrencesOfString:@"Right" withString:[NSString stringWithUTF8String:"\xE2\x86\x92"]]; theString = [theString stringByReplacingOccurrencesOfString:@"Left" withString:[NSString stringWithUTF8String:"\xE2\x86\x90"]]; -- 2.39.2