Stop emitting private use characters on macOS

This commit is contained in:
Héctor Ramón Jiménez 2019-11-24 12:27:39 +01:00
parent 5629716120
commit bbeb03504a

View file

@ -286,7 +286,9 @@ pub trait Application: Sized {
));
}
},
WindowEvent::ReceivedCharacter(c) => {
WindowEvent::ReceivedCharacter(c)
if !is_private_use_character(c) =>
{
events.push(Event::Keyboard(
keyboard::Event::CharacterReceived(c),
));
@ -379,3 +381,14 @@ fn spawn<Message: Send>(
thread_pool.spawn_ok(future);
}
}
// As defined in: http://www.unicode.org/faq/private_use.html
// TODO: Remove once https://github.com/rust-windowing/winit/pull/1254 lands
fn is_private_use_character(c: char) -> bool {
match c {
'\u{E000}'..='\u{F8FF}'
| '\u{F0000}'..='\u{FFFFD}'
| '\u{100000}'..='\u{10FFFD}' => true,
_ => false,
}
}