From 059821a99c6227e3b5ea271dc31c561a7a65d95b Mon Sep 17 00:00:00 2001 From: Vladimir Vukicevic Date: Tue, 22 Sep 2015 14:02:36 -0400 Subject: win32: implement wakeup_event_loop --- src/api/win32/mod.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/api/win32/mod.rs') diff --git a/src/api/win32/mod.rs b/src/api/win32/mod.rs index f580950..a4ca275 100644 --- a/src/api/win32/mod.rs +++ b/src/api/win32/mod.rs @@ -38,6 +38,10 @@ mod event; mod init; 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. pub struct Window { /// Main handle for the window. @@ -75,11 +79,15 @@ impl Drop for WindowWrapper { } #[derive(Clone)] -pub struct WindowProxy; +pub struct WindowProxy { + hwnd: winapi::HWND, +} impl WindowProxy { 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 { - WindowProxy + WindowProxy { hwnd: self.window.0 } } /// See the docs in the crate root file. -- cgit v1.2.3