in native/desktop-win32/src/win32/event_loop.rs [352:378]
fn on_keydown(event_loop: &EventLoop, window: &Window, msg: u32, wparam: WPARAM, lparam: LPARAM) -> Option<LRESULT> {
let vk_code = LOWORD!(wparam.0);
let timestamp = unsafe { GetMessageTime() } as u32;
let event = KeyEvent {
key_code: VirtualKey(vk_code),
key_status: PhysicalKeyStatus::parse(lparam),
is_system_key: matches!(msg, WM_SYSKEYDOWN),
timestamp: Timestamp(u64::from(timestamp)),
};
let result = event_loop.handle_event(window, Event::KeyDown(event));
if result.is_none() {
let pos = unsafe { GetMessagePos() };
let msg = MSG {
hwnd: window.hwnd(),
message: msg,
wParam: wparam,
lParam: lparam,
time: timestamp,
pt: POINT {
x: GET_X_LPARAM!(pos),
y: GET_Y_LPARAM!(pos),
},
};
let _ = unsafe { TranslateMessage(&raw const msg) };
}
result
}