mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 16:20:11 -04:00
cocoadisplay: Use [event charactersIgnoringModifiers] when UCKeyTranslate() can not translate the input key
This commit is contained in:
parent
216475091e
commit
28f49ffd0b
@ -1762,6 +1762,19 @@ handle_key_event(NSEvent *event) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If UCKeyTranslate could not map the key into a valid unicode character or
|
||||
// reserved symbol (See NSEvent.h), it returns 0x10 as translated character.
|
||||
// This happens e.g.e with the combination Fn+F1.. keys.
|
||||
// In that case, as fallback, we use charactersIgnoringModifiers to retrieve
|
||||
// the character without modifiers.
|
||||
if (c == 0x10) {
|
||||
NSString *str = [event charactersIgnoringModifiers];
|
||||
if (str == nil || [str length] != 1) {
|
||||
return;
|
||||
}
|
||||
c = [str characterAtIndex: 0];
|
||||
}
|
||||
|
||||
ButtonHandle button = map_key(c);
|
||||
|
||||
if (button == ButtonHandle::none()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user