Merge pull request #67 from hecrj/fix/private-use-characters

Stop emitting private use characters on macOS
This commit is contained in:
Héctor Ramón 2019-11-24 16:35:16 +01:00 committed by GitHub
commit 357f73c2ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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,
}
}