mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-25 06:41:31 +11:00
Merge pull request #587 from neivv/win32-alt
Handle events for Alt-<Key> and F10 presses in windows
This commit is contained in:
commit
1b28e32e31
|
@ -102,6 +102,14 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Prevents default windows menu hotkeys playing unwanted
|
||||||
|
// "ding" sounds. Alternatively could check for WM_SYSCOMMAND
|
||||||
|
// with wparam being SC_KEYMENU, but this may prevent some
|
||||||
|
// other unwanted default hotkeys as well.
|
||||||
|
winapi::WM_SYSCHAR => {
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
winapi::WM_MOUSEMOVE => {
|
winapi::WM_MOUSEMOVE => {
|
||||||
use events::Event::MouseMoved;
|
use events::Event::MouseMoved;
|
||||||
|
|
||||||
|
@ -126,15 +134,19 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
|
|
||||||
winapi::WM_KEYDOWN => {
|
winapi::WM_KEYDOWN | winapi::WM_SYSKEYDOWN => {
|
||||||
use events::Event::KeyboardInput;
|
use events::Event::KeyboardInput;
|
||||||
use events::ElementState::Pressed;
|
use events::ElementState::Pressed;
|
||||||
|
if msg == winapi::WM_SYSKEYDOWN && wparam as i32 == winapi::VK_F4 {
|
||||||
|
user32::DefWindowProcW(window, msg, wparam, lparam)
|
||||||
|
} else {
|
||||||
let (scancode, vkey) = event::vkeycode_to_element(wparam, lparam);
|
let (scancode, vkey) = event::vkeycode_to_element(wparam, lparam);
|
||||||
send_event(window, KeyboardInput(Pressed, scancode, vkey));
|
send_event(window, KeyboardInput(Pressed, scancode, vkey));
|
||||||
0
|
0
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
winapi::WM_KEYUP => {
|
winapi::WM_KEYUP | winapi::WM_SYSKEYUP => {
|
||||||
use events::Event::KeyboardInput;
|
use events::Event::KeyboardInput;
|
||||||
use events::ElementState::Released;
|
use events::ElementState::Released;
|
||||||
let (scancode, vkey) = event::vkeycode_to_element(wparam, lparam);
|
let (scancode, vkey) = event::vkeycode_to_element(wparam, lparam);
|
||||||
|
|
Loading…
Reference in a new issue