diff --git a/src/SFML/Window/OSX/SFOpenGLView.mm b/src/SFML/Window/OSX/SFOpenGLView.mm index 69141534..7a078de7 100644 --- a/src/SFML/Window/OSX/SFOpenGLView.mm +++ b/src/SFML/Window/OSX/SFOpenGLView.mm @@ -359,8 +359,20 @@ if (myUseKeyRepeat || ![theEvent isARepeat]) myRequester->KeyDown([theEvent keyCode], [theEvent modifierFlags]); - if ((myUseKeyRepeat || ![theEvent isARepeat]) && [[theEvent characters] length] > 0) - myRequester->TextEntred([[theEvent characters] characterAtIndex:0]); + if ((myUseKeyRepeat || ![theEvent isARepeat]) && [[theEvent characters] length] > 0) { + /// From NSEvent.h : + /* + * Unicodes we reserve for function keys on the keyboard, + * OpenStep reserves the range 0xF700-0xF8FF for this purpose. + * The availability of various keys will be system dependent. + */ + /// And 0x35 is the Escape key. + unichar ch = [[theEvent characters] characterAtIndex:0]; + if ([theEvent keyCode] != 0x35 && + (ch < 0xf700 || ch > 0xf8ff)) { + myRequester->TextEntered(ch); + } + } } diff --git a/src/SFML/Window/OSX/WindowImplCocoa.hpp b/src/SFML/Window/OSX/WindowImplCocoa.hpp index 538da0d2..5af94773 100644 --- a/src/SFML/Window/OSX/WindowImplCocoa.hpp +++ b/src/SFML/Window/OSX/WindowImplCocoa.hpp @@ -102,7 +102,7 @@ public: void MouseMovedOut(void); void KeyDown(unsigned short keycode, unsigned int modifierFlags); void KeyUp(unsigned short keycode, unsigned int modifierFlags); - void TextEntred(Uint32 charcode); + void TextEntered(Uint32 charcode); static Key::Code NSKeyCodeToSFMLKeyCode(unsigned short rawchar); diff --git a/src/SFML/Window/OSX/WindowImplCocoa.mm b/src/SFML/Window/OSX/WindowImplCocoa.mm index 79a99bbf..6aa68a19 100644 --- a/src/SFML/Window/OSX/WindowImplCocoa.mm +++ b/src/SFML/Window/OSX/WindowImplCocoa.mm @@ -281,7 +281,7 @@ void WindowImplCocoa::KeyUp(unsigned short keycode, unsigned int modifierFlags) //////////////////////////////////////////////////////////// -void WindowImplCocoa::TextEntred(Uint32 charcode) +void WindowImplCocoa::TextEntered(Uint32 charcode) { Event event; event.Type = Event::TextEntered; diff --git a/src/SFML/Window/OSX/WindowImplDelegateProtocol.h b/src/SFML/Window/OSX/WindowImplDelegateProtocol.h index 54ff5445..56792461 100644 --- a/src/SFML/Window/OSX/WindowImplDelegateProtocol.h +++ b/src/SFML/Window/OSX/WindowImplDelegateProtocol.h @@ -54,7 +54,7 @@ namespace sf { /// MouseDownAt, MouseUpAt, MouseMovedAt, MouseWheelScrolledAt, /// MouseMovedIn, MouseMovedOut /// -/// KeyDown, KeyUp, TextEntred +/// KeyDown, KeyUp, TextEntered /// /// Note : Joystick are not bound to a view or window /// thus they're not managed by a class implementing this protocol.