Merge pull request #5298 from phamdaniel/fix-mac-accelerators
Fix converting from windows virtual keycode back to mac keycode
This commit is contained in:
commit
7b8a05f01f
1 changed files with 12 additions and 6 deletions
|
@ -13,12 +13,6 @@ namespace accelerator_util {
|
|||
void SetPlatformAccelerator(ui::Accelerator* accelerator) {
|
||||
unichar character;
|
||||
unichar characterIgnoringModifiers;
|
||||
ui::MacKeyCodeForWindowsKeyCode(accelerator->key_code(),
|
||||
0,
|
||||
&character,
|
||||
&characterIgnoringModifiers);
|
||||
NSString* characters =
|
||||
[[[NSString alloc] initWithCharacters:&character length:1] autorelease];
|
||||
|
||||
NSUInteger modifiers =
|
||||
(accelerator->IsCtrlDown() ? NSControlKeyMask : 0) |
|
||||
|
@ -26,6 +20,18 @@ void SetPlatformAccelerator(ui::Accelerator* accelerator) {
|
|||
(accelerator->IsAltDown() ? NSAlternateKeyMask : 0) |
|
||||
(accelerator->IsShiftDown() ? NSShiftKeyMask : 0);
|
||||
|
||||
ui::MacKeyCodeForWindowsKeyCode(accelerator->key_code(),
|
||||
modifiers,
|
||||
&character,
|
||||
&characterIgnoringModifiers);
|
||||
|
||||
if (character != characterIgnoringModifiers) {
|
||||
modifiers ^= NSShiftKeyMask;
|
||||
}
|
||||
|
||||
NSString* characters =
|
||||
[[[NSString alloc] initWithCharacters:&character length:1] autorelease];
|
||||
|
||||
scoped_ptr<ui::PlatformAccelerator> platform_accelerator(
|
||||
new ui::PlatformAcceleratorCocoa(characters, modifiers));
|
||||
accelerator->set_platform_accelerator(std::move(platform_accelerator));
|
||||
|
|
Loading…
Reference in a new issue