mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-25 06:41:31 +11:00
win32: implement wakeup_event_loop
This commit is contained in:
parent
4af72a4109
commit
059821a99c
|
@ -281,6 +281,12 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
|
|
||||||
|
x if x == *super::WAKEUP_MSG_ID => {
|
||||||
|
use events::Event::Awakened;
|
||||||
|
send_event(window, Awakened);
|
||||||
|
0
|
||||||
|
},
|
||||||
|
|
||||||
_ => {
|
_ => {
|
||||||
user32::DefWindowProcW(window, msg, wparam, lparam)
|
user32::DefWindowProcW(window, msg, wparam, lparam)
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,10 @@ mod event;
|
||||||
mod init;
|
mod init;
|
||||||
mod monitor;
|
mod monitor;
|
||||||
|
|
||||||
|
lazy_static! {
|
||||||
|
static ref WAKEUP_MSG_ID: u32 = unsafe { user32::RegisterWindowMessageA("Glutin::EventID".as_ptr() as *const i8) };
|
||||||
|
}
|
||||||
|
|
||||||
/// The Win32 implementation of the main `Window` object.
|
/// The Win32 implementation of the main `Window` object.
|
||||||
pub struct Window {
|
pub struct Window {
|
||||||
/// Main handle for the window.
|
/// Main handle for the window.
|
||||||
|
@ -75,11 +79,15 @@ impl Drop for WindowWrapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct WindowProxy;
|
pub struct WindowProxy {
|
||||||
|
hwnd: winapi::HWND,
|
||||||
|
}
|
||||||
|
|
||||||
impl WindowProxy {
|
impl WindowProxy {
|
||||||
pub fn wakeup_event_loop(&self) {
|
pub fn wakeup_event_loop(&self) {
|
||||||
unimplemented!()
|
unsafe {
|
||||||
|
user32::PostMessageA(self.hwnd, *WAKEUP_MSG_ID, 0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +197,7 @@ impl Window {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_window_proxy(&self) -> WindowProxy {
|
pub fn create_window_proxy(&self) -> WindowProxy {
|
||||||
WindowProxy
|
WindowProxy { hwnd: self.window.0 }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// See the docs in the crate root file.
|
/// See the docs in the crate root file.
|
||||||
|
|
Loading…
Reference in a new issue