mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-25 06:41:31 +11:00
commit
3820d307a3
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,4 @@
|
||||||
Cargo.lock
|
Cargo.lock
|
||||||
target/
|
target/
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
|
|
@ -56,7 +56,7 @@ core-graphics = "0"
|
||||||
winapi = "0.2"
|
winapi = "0.2"
|
||||||
shell32-sys = "0.1"
|
shell32-sys = "0.1"
|
||||||
gdi32-sys = "0.1"
|
gdi32-sys = "0.1"
|
||||||
user32-sys = "~0.1.1"
|
user32-sys = "~0.1.2"
|
||||||
kernel32-sys = "0.1"
|
kernel32-sys = "0.1"
|
||||||
dwmapi-sys = "0.1"
|
dwmapi-sys = "0.1"
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ dwmapi-sys = "0.1"
|
||||||
winapi = "0.2"
|
winapi = "0.2"
|
||||||
shell32-sys = "0.1"
|
shell32-sys = "0.1"
|
||||||
gdi32-sys = "0.1"
|
gdi32-sys = "0.1"
|
||||||
user32-sys = "~0.1.1"
|
user32-sys = "~0.1.2"
|
||||||
kernel32-sys = "0.1"
|
kernel32-sys = "0.1"
|
||||||
dwmapi-sys = "0.1"
|
dwmapi-sys = "0.1"
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ dwmapi-sys = "0.1"
|
||||||
winapi = "0.2"
|
winapi = "0.2"
|
||||||
shell32-sys = "0.1"
|
shell32-sys = "0.1"
|
||||||
gdi32-sys = "0.1"
|
gdi32-sys = "0.1"
|
||||||
user32-sys = "~0.1.1"
|
user32-sys = "~0.1.2"
|
||||||
kernel32-sys = "0.1"
|
kernel32-sys = "0.1"
|
||||||
dwmapi-sys = "0.1"
|
dwmapi-sys = "0.1"
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ dwmapi-sys = "0.1"
|
||||||
winapi = "0.2"
|
winapi = "0.2"
|
||||||
shell32-sys = "0.1"
|
shell32-sys = "0.1"
|
||||||
gdi32-sys = "0.1"
|
gdi32-sys = "0.1"
|
||||||
user32-sys = "~0.1.1"
|
user32-sys = "~0.1.2"
|
||||||
kernel32-sys = "0.1"
|
kernel32-sys = "0.1"
|
||||||
dwmapi-sys = "0.1"
|
dwmapi-sys = "0.1"
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
@ -207,7 +215,10 @@ impl Window {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn platform_display(&self) -> *mut libc::c_void {
|
pub fn platform_display(&self) -> *mut libc::c_void {
|
||||||
unimplemented!()
|
// What should this return on win32?
|
||||||
|
// It could be GetDC(NULL), but that requires a ReleaseDC()
|
||||||
|
// to avoid leaking the DC.
|
||||||
|
ptr::null_mut()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn platform_window(&self) -> *mut libc::c_void {
|
pub fn platform_window(&self) -> *mut libc::c_void {
|
||||||
|
|
Loading…
Reference in a new issue