aboutsummaryrefslogtreecommitdiffstats
path: root/src/win32/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32/mod.rs')
-rw-r--r--src/win32/mod.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/win32/mod.rs b/src/win32/mod.rs
index d8e2df2..95df9a4 100644
--- a/src/win32/mod.rs
+++ b/src/win32/mod.rs
@@ -4,6 +4,7 @@ use std::sync::atomics::AtomicBool;
use std::ptr;
use {Event, Hints};
+mod event;
mod ffi;
pub struct Window {
@@ -340,6 +341,24 @@ extern "stdcall" fn callback(window: ffi::HWND, msg: ffi::UINT,
0
},
+ ffi::WM_KEYDOWN => {
+ use events::Pressed;
+ let element = event::vkeycode_to_element(wparam);
+ if element.is_some() {
+ send_event(window, Pressed(element.unwrap()));
+ }
+ 0
+ },
+
+ ffi::WM_KEYUP => {
+ use events::Released;
+ let element = event::vkeycode_to_element(wparam);
+ if element.is_some() {
+ send_event(window, Released(element.unwrap()));
+ }
+ 0
+ },
+
_ => unsafe {
ffi::DefWindowProcW(window, msg, wparam, lparam)
}