fix OS X alert related to key event (close #98)

This commit is contained in:
Marco Antognini 2011-09-24 13:34:58 +02:00
parent a547acfeb7
commit 0fd992d56e
2 changed files with 22 additions and 6 deletions

View File

@ -520,11 +520,13 @@ NSUInteger KeepOnlyMaskFromData(NSUInteger data, NSUInteger mask);
// Handle text entred event // Handle text entred event
// We create a new event without command modifiers // We create a new event without command/ctrl modifiers
// to prevent the OS from sending an alert // to prevent the OS from sending an alert
NSUInteger modifiers = [theEvent modifierFlags] & NSCommandKeyMask NSUInteger modifiers = [theEvent modifierFlags];
? [theEvent modifierFlags] & ~NSCommandKeyMask
: [theEvent modifierFlags]; if (modifiers & NSCommandKeyMask) modifiers = modifiers & ~NSCommandKeyMask;
if (modifiers & NSControlKeyMask) modifiers = modifiers & ~NSControlKeyMask;
NSEvent* ev = [NSEvent keyEventWithType:NSKeyDown NSEvent* ev = [NSEvent keyEventWithType:NSKeyDown
location:[theEvent locationInWindow] location:[theEvent locationInWindow]
modifierFlags:modifiers modifierFlags:modifiers

View File

@ -32,14 +32,28 @@
@implementation SFWindow @implementation SFWindow
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
-(BOOL)acceptsFirstResponder { -(BOOL)acceptsFirstResponder
{
return YES; return YES;
} }
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
-(BOOL)canBecomeKeyWindow { -(BOOL)canBecomeKeyWindow
{
return YES; return YES;
} }
////////////////////////////////////////////////////////
-(void)keyDown:(NSEvent *)theEvent
{
// Do nothing except preventing a system alert each time a key is pressed
//
// Special Consideration :
// -----------------------
// Consider overriding NSResponder -keyDown: message in a Cocoa view/window
// that contains a SFML rendering area. Doing so will prevent a system
// alert to be thrown everytime the user presses a key.
}
@end @end