devdraw: OS X dead key support

R=rsc
CC=plan9port.codebot
http://codereview.appspot.com/5503086
This commit is contained in:
David Jeannot 2012-01-16 17:02:06 -05:00 committed by Russ Cox
parent 131ab3addb
commit 5ec2425b17

View file

@ -571,6 +571,23 @@ static int keycvt[] =
[QZ_KP9] '9', [QZ_KP9] '9',
}; };
@interface apptext : NSTextView @end
@implementation apptext
- (void)doCommandBySelector:(SEL)s{} /* Esc key beeps otherwise */
- (void)insertText:(id)arg{} /* to avoid a latency after some time */
@end
static void
interpretdeadkey(NSEvent *e)
{
static apptext *t;
if(t == nil)
t = [apptext new];
[t interpretKeyEvents:[NSArray arrayWithObject:e]];
}
static void static void
getkeyboard(NSEvent *e) getkeyboard(NSEvent *e)
{ {
@ -588,6 +605,8 @@ getkeyboard(NSEvent *e)
s = [e characters]; s = [e characters];
c = [s UTF8String][0]; c = [s UTF8String][0];
interpretdeadkey(e);
if(m & NSCommandKeyMask){ if(m & NSCommandKeyMask){
if(' '<=c && c<='~') if(' '<=c && c<='~')
keystroke(Kcmd+c); keystroke(Kcmd+c);