raw-window-handle
raw-window-handle copied to clipboard
Add safe constructors for display and window handles
There are some DisplayHandle
and WindowHandle
variants that are completely safe to construct. For instance:
- Most
DisplayHandle
s are just indicators of the currently running display system and don't involve any borrowed state. - An
[Xlib/Xcb]DisplayHandle
with a display ofNone
can be constructed safely. -
Win32WindowHandle
,[Xlib/Xcb]WindowHandle
and WASM web handles involve window IDs with no borrowed state.
It should be possible to construct these safely, with constructors on the safe types.
The reason everything in unsafe
is forward compat, I guess? Because unsafe -> safe is a breaking change, but not otherwise.
Also, isn't Default
basically it?
I was thinking more along these lines:
impl DisplayHandle<'static> {
pub fn windows() -> Self {
unsafe { Self::borrow_raw(WindowsDisplayHandle::new().into()) }
}
pub fn xlib_no_display() -> Self {
unsafe { Self::borrow_raw(XlibDisplayHandle::new(None).into()) }
}
}
Basically, to allow for more ways of creating DisplayHandle
and WindowHandle
without needing to go through borrow_raw
.