From 28a85d27e97add1050d68adacc1fccca4c582214 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Wed, 26 Dec 2012 14:02:59 +0000 Subject: Mac OS text input: corrected processing of arrow keys during character composition. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9777 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_cocoa.mm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 20733b974..b12794f7a 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -1703,6 +1703,7 @@ static void q_set_window_title(NSWindow *nsw, const char * name, const char *mi } - (BOOL)performKeyEquivalent:(NSEvent*)theEvent { + int handled = 1; //NSLog(@"performKeyEquivalent:"); fl_lock_function(); cocoaKeyboardHandler(theEvent); @@ -1713,7 +1714,15 @@ static void q_set_window_title(NSWindow *nsw, const char * name, const char *mi s = [s uppercaseString]; // US keyboards return lowercase letter in s if cmd-shift-key is hit } if ([s length] >= 1) [FLView prepareEtext:s]; - int handled = Fl::handle(FL_KEYBOARD, window); + if ( (mods & NSControlKeyMask) || (mods & NSCommandKeyMask) ) { + handled = Fl::handle(FL_KEYBOARD, window); + } + else { + in_key_event = YES; + NSText *edit = [[theEvent window] fieldEditor:YES forObject:nil]; + [edit interpretKeyEvents:[NSArray arrayWithObject:theEvent]]; + in_key_event = NO; + } fl_unlock_function(); return (handled ? YES : NO); } -- cgit v1.2.3