mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-25 06:41:31 +11:00
Remove dependency on libc when possible
This commit is contained in:
parent
751b0a7ed7
commit
aace1c0373
|
@ -4,12 +4,12 @@ use std::mem;
|
||||||
use std::ptr;
|
use std::ptr;
|
||||||
use std::ffi::OsStr;
|
use std::ffi::OsStr;
|
||||||
use std::os::windows::ffi::OsStrExt;
|
use std::os::windows::ffi::OsStrExt;
|
||||||
|
use std::os::raw::c_int;
|
||||||
use std::sync::{
|
use std::sync::{
|
||||||
Arc,
|
Arc,
|
||||||
Mutex
|
Mutex
|
||||||
};
|
};
|
||||||
use std::sync::mpsc::Receiver;
|
use std::sync::mpsc::Receiver;
|
||||||
use libc;
|
|
||||||
use {CreationError, Event, MouseCursor};
|
use {CreationError, Event, MouseCursor};
|
||||||
use CursorState;
|
use CursorState;
|
||||||
|
|
||||||
|
@ -143,10 +143,8 @@ impl Window {
|
||||||
|
|
||||||
/// See the docs in the crate root file.
|
/// See the docs in the crate root file.
|
||||||
pub fn set_position(&self, x: i32, y: i32) {
|
pub fn set_position(&self, x: i32, y: i32) {
|
||||||
use libc;
|
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
user32::SetWindowPos(self.window.0, ptr::null_mut(), x as libc::c_int, y as libc::c_int,
|
user32::SetWindowPos(self.window.0, ptr::null_mut(), x as c_int, y as c_int,
|
||||||
0, 0, winapi::SWP_NOZORDER | winapi::SWP_NOSIZE);
|
0, 0, winapi::SWP_NOZORDER | winapi::SWP_NOSIZE);
|
||||||
user32::UpdateWindow(self.window.0);
|
user32::UpdateWindow(self.window.0);
|
||||||
}
|
}
|
||||||
|
@ -184,8 +182,6 @@ impl Window {
|
||||||
|
|
||||||
/// See the docs in the crate root file.
|
/// See the docs in the crate root file.
|
||||||
pub fn set_inner_size(&self, x: u32, y: u32) {
|
pub fn set_inner_size(&self, x: u32, y: u32) {
|
||||||
use libc;
|
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
// Calculate the outer size based upon the specified inner size
|
// Calculate the outer size based upon the specified inner size
|
||||||
let mut rect = winapi::RECT { top: 0, left: 0, bottom: y as winapi::LONG, right: x as winapi::LONG };
|
let mut rect = winapi::RECT { top: 0, left: 0, bottom: y as winapi::LONG, right: x as winapi::LONG };
|
||||||
|
@ -193,8 +189,8 @@ impl Window {
|
||||||
let b_menu = !user32::GetMenu(self.window.0).is_null() as winapi::BOOL;
|
let b_menu = !user32::GetMenu(self.window.0).is_null() as winapi::BOOL;
|
||||||
let dw_style_ex = user32::GetWindowLongA(self.window.0, winapi::GWL_EXSTYLE) as winapi::DWORD;
|
let dw_style_ex = user32::GetWindowLongA(self.window.0, winapi::GWL_EXSTYLE) as winapi::DWORD;
|
||||||
user32::AdjustWindowRectEx(&mut rect, dw_style, b_menu, dw_style_ex);
|
user32::AdjustWindowRectEx(&mut rect, dw_style, b_menu, dw_style_ex);
|
||||||
let outer_x = (rect.right - rect.left).abs() as libc::c_int;
|
let outer_x = (rect.right - rect.left).abs() as c_int;
|
||||||
let outer_y = (rect.top - rect.bottom).abs() as libc::c_int;
|
let outer_y = (rect.top - rect.bottom).abs() as c_int;
|
||||||
|
|
||||||
user32::SetWindowPos(self.window.0, ptr::null_mut(), 0, 0, outer_x, outer_y,
|
user32::SetWindowPos(self.window.0, ptr::null_mut(), 0, 0, outer_x, outer_y,
|
||||||
winapi::SWP_NOZORDER | winapi::SWP_NOREPOSITION | winapi::SWP_NOMOVE);
|
winapi::SWP_NOZORDER | winapi::SWP_NOREPOSITION | winapi::SWP_NOMOVE);
|
||||||
|
@ -224,7 +220,7 @@ impl Window {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn platform_display(&self) -> *mut libc::c_void {
|
pub fn platform_display(&self) -> *mut ::libc::c_void {
|
||||||
// What should this return on win32?
|
// What should this return on win32?
|
||||||
// It could be GetDC(NULL), but that requires a ReleaseDC()
|
// It could be GetDC(NULL), but that requires a ReleaseDC()
|
||||||
// to avoid leaking the DC.
|
// to avoid leaking the DC.
|
||||||
|
@ -232,8 +228,8 @@ impl Window {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn platform_window(&self) -> *mut libc::c_void {
|
pub fn platform_window(&self) -> *mut ::libc::c_void {
|
||||||
self.window.0 as *mut libc::c_void
|
self.window.0 as *mut ::libc::c_void
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|
Loading…
Reference in a new issue