From a9733e9906404128ed45e2708e3c1da4bd4f90ce Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 26 Feb 2024 05:57:10 +0100 Subject: Ignore `text` in `KeyPressed` with private use chars Apparently, macOS likes to use these for simple keys. --- winit/src/conversion.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'winit/src/conversion.rs') diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs index 3d2ba0a4..4ff135e9 100644 --- a/winit/src/conversion.rs +++ b/winit/src/conversion.rs @@ -224,7 +224,7 @@ pub fn window_event( // TODO: Fix inconsistent API on Wasm event.text } - }; + }.filter(|text| !text.as_str().chars().any(is_private_use)); let winit::event::KeyEvent { state, location, .. @@ -839,3 +839,8 @@ pub fn icon(icon: window::Icon) -> Option { winit::window::Icon::from_rgba(pixels, size.width, size.height).ok() } + +// See: https://en.wikipedia.org/wiki/Private_Use_Areas +fn is_private_use(c: char) -> bool { + c >= '\u{E000}' && c <= '\u{F8FF}' +} -- cgit