Move RawWindowHandleWrapper to a shared module
We're going to need this for the other platforms as well.
This commit is contained in:
parent
690a94f9f1
commit
2f7f177be8
|
@ -18,6 +18,12 @@ pub struct WindowHandle {
|
||||||
phantom: PhantomData<*mut ()>,
|
phantom: PhantomData<*mut ()>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Quick wrapper to satisfy [HasRawWindowHandle], because of course a raw window handle wouldn't
|
||||||
|
/// have a raw window handle, that would be silly.
|
||||||
|
pub(crate) struct RawWindowHandleWrapper {
|
||||||
|
pub handle: RawWindowHandle,
|
||||||
|
}
|
||||||
|
|
||||||
impl WindowHandle {
|
impl WindowHandle {
|
||||||
fn new(window_handle: platform::WindowHandle) -> Self {
|
fn new(window_handle: platform::WindowHandle) -> Self {
|
||||||
Self { window_handle, phantom: PhantomData::default() }
|
Self { window_handle, phantom: PhantomData::default() }
|
||||||
|
@ -105,3 +111,9 @@ unsafe impl<'a> HasRawWindowHandle for Window<'a> {
|
||||||
self.window.raw_window_handle()
|
self.window.raw_window_handle()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsafe impl HasRawWindowHandle for RawWindowHandleWrapper {
|
||||||
|
fn raw_window_handle(&self) -> RawWindowHandle {
|
||||||
|
self.handle
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ use xcb::ffi::xcb_screen_t;
|
||||||
use xcb::StructPtr;
|
use xcb::StructPtr;
|
||||||
|
|
||||||
use super::XcbConnection;
|
use super::XcbConnection;
|
||||||
|
use crate::window::RawWindowHandleWrapper;
|
||||||
use crate::{
|
use crate::{
|
||||||
Event, MouseButton, MouseCursor, MouseEvent, PhyPoint, PhySize, ScrollDelta, WindowEvent,
|
Event, MouseButton, MouseCursor, MouseEvent, PhyPoint, PhySize, ScrollDelta, WindowEvent,
|
||||||
WindowHandler, WindowInfo, WindowOpenOptions, WindowScalePolicy,
|
WindowHandler, WindowInfo, WindowOpenOptions, WindowScalePolicy,
|
||||||
|
@ -109,12 +110,6 @@ pub struct Window {
|
||||||
// Hack to allow sending a RawWindowHandle between threads. Do not make public
|
// Hack to allow sending a RawWindowHandle between threads. Do not make public
|
||||||
struct SendableRwh(RawWindowHandle);
|
struct SendableRwh(RawWindowHandle);
|
||||||
|
|
||||||
/// Quick wrapper to satisfy [HasRawWindowHandle], because of course a raw window handle wouldn't
|
|
||||||
/// have a raw window handle, that would be silly.
|
|
||||||
struct RawWindowHandleWrapper {
|
|
||||||
handle: RawWindowHandle,
|
|
||||||
}
|
|
||||||
|
|
||||||
unsafe impl Send for SendableRwh {}
|
unsafe impl Send for SendableRwh {}
|
||||||
|
|
||||||
type WindowOpenResult = Result<SendableRwh, ()>;
|
type WindowOpenResult = Result<SendableRwh, ()>;
|
||||||
|
@ -667,12 +662,6 @@ unsafe impl HasRawWindowHandle for Window {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl HasRawWindowHandle for RawWindowHandleWrapper {
|
|
||||||
fn raw_window_handle(&self) -> RawWindowHandle {
|
|
||||||
self.handle
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn mouse_id(id: u8) -> MouseButton {
|
fn mouse_id(id: u8) -> MouseButton {
|
||||||
match id {
|
match id {
|
||||||
1 => MouseButton::Left,
|
1 => MouseButton::Left,
|
||||||
|
|
Loading…
Reference in a new issue