diff options
author | rubidium <rubidium@openttd.org> | 2010-09-15 21:19:41 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-09-15 21:19:41 +0000 |
commit | 4915f47264f87e39690bb138fc87138eb66708f0 (patch) | |
tree | 9eb34bdf4aee0522da9a241854820d91e11277b1 /src/video/cocoa/event.mm | |
parent | 532003504e18226014c3845065d16835b4467043 (diff) | |
download | openttd-4915f47264f87e39690bb138fc87138eb66708f0.tar.xz |
(svn r20808) -Add [FS#4110]: [OSX] support for input using dead keys (Zydeco)
Diffstat (limited to 'src/video/cocoa/event.mm')
-rw-r--r-- | src/video/cocoa/event.mm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/video/cocoa/event.mm b/src/video/cocoa/event.mm index 08bf875fa..d3e2131a0 100644 --- a/src/video/cocoa/event.mm +++ b/src/video/cocoa/event.mm @@ -412,6 +412,7 @@ static bool QZ_PollEvent() NSString *chars; NSPoint pt; + NSText *fieldEditor; switch ([ event type ]) { case NSMouseMoved: case NSOtherMouseDragged: @@ -550,8 +551,19 @@ static bool QZ_PollEvent() break; } + fieldEditor = [[ event window ] fieldEditor:YES forObject:nil ]; + [ fieldEditor setString:@"" ]; + [ fieldEditor interpretKeyEvents: [ NSArray arrayWithObject:event ] ]; + chars = [ event characters ]; - QZ_KeyEvent([ event keyCode ], [ chars length ] ? [ chars characterAtIndex:0 ] : 0, YES); + if ([ chars length ] == 0) { + QZ_KeyEvent([ event keyCode ], 0, YES); + } else { + QZ_KeyEvent([ event keyCode ], [ chars characterAtIndex:0 ], YES); + for (int i = 1; i < [ chars length ]; i++) { + QZ_KeyEvent(0, [ chars characterAtIndex:i ], YES); + } + } break; case NSKeyUp: |