From 0b828ac3fe66c59c8ef55668e9dfadd932f0c770 Mon Sep 17 00:00:00 2001 From: Nuri Yuri Date: Tue, 15 Aug 2023 22:05:13 +0200 Subject: [PATCH] Make Scancode public and add missing scan field to KeyReleased event --- examples/pong.rs | 18 +++++++++++++++--- src/window/event.rs | 3 +++ src/window/mod.rs | 2 ++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/examples/pong.rs b/examples/pong.rs index 1d1e97a0..e8d9c5d1 100644 --- a/examples/pong.rs +++ b/examples/pong.rs @@ -7,7 +7,7 @@ use { Transformable, }, system::{Clock, Time, Vector2f}, - window::{ContextSettings, Event, Key, Style}, + window::{ContextSettings, Event, Key, Scancode, Style}, }, std::{env, f32::consts::PI}, }; @@ -134,13 +134,25 @@ fn main() { } } } - Event::KeyPressed { code: Key::Up, .. } => up = true, - Event::KeyReleased { code: Key::Up, .. } => up = false, + Event::KeyPressed { code: Key::Up, .. } + | Event::KeyPressed { + scan: Scancode::W, .. + } => up = true, + Event::KeyReleased { code: Key::Up, .. } + | Event::KeyReleased { + scan: Scancode::W, .. + } => up = false, Event::KeyPressed { code: Key::Down, .. + } + | Event::KeyPressed { + scan: Scancode::S, .. } => down = true, Event::KeyReleased { code: Key::Down, .. + } + | Event::KeyReleased { + scan: Scancode::S, .. } => down = false, _ => {} } diff --git a/src/window/event.rs b/src/window/event.rs index 5d5e864d..29a1c8ac 100644 --- a/src/window/event.rs +++ b/src/window/event.rs @@ -72,6 +72,8 @@ pub enum Event { KeyReleased { /// The released key code: ffi::Key, + /// The scancode of the released key + scan: ffi::Scancode, /// Is alt released too? alt: bool, /// Is ctrl released too? @@ -228,6 +230,7 @@ impl Event { }, EventType::KeyReleased => KeyReleased { code: event.union.key.code, + scan: event.union.key.scan, alt: event.union.key.alt, ctrl: event.union.key.control, shift: event.union.key.shift, diff --git a/src/window/mod.rs b/src/window/mod.rs index a37f5c17..b2aed5bc 100644 --- a/src/window/mod.rs +++ b/src/window/mod.rs @@ -11,6 +11,8 @@ pub use self::{ window::{Handle, Window}, }; +pub use crate::ffi::window::Scancode; + pub mod clipboard; mod context; mod context_settings;