Skip to content

Commit

Permalink
Update raw-window-handle to 0.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
madsmtm committed Jun 5, 2021
1 parent 67cca71 commit deba6fd
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 51 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
@@ -1,5 +1,6 @@
# Unreleased

- **Breaking:** Update `raw-window-handle` to `0.4.0`.
- On Android, implement `Window::request_redraw`
- **Breaking:** On Web, remove the `stdweb` backend.
- Added `Window::focus_window`to bring the window to the front and set input focus.
Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Expand Up @@ -27,7 +27,8 @@ lazy_static = "1"
libc = "0.2.64"
log = "0.4"
serde = { version = "1", optional = true, features = ["serde_derive"] }
raw-window-handle = "0.3"
# PR: https://github.com/rust-windowing/raw-window-handle/pull/70
raw-window-handle = { git = "https://github.com/Friz64/raw-window-handle.git", rev = "6c0665649435a31cddc5e895bf4f74c656f200ad" }
bitflags = "1"
mint = { version = "0.5.6", optional = true }

Expand Down
10 changes: 5 additions & 5 deletions src/platform_impl/android/mod.rs
Expand Up @@ -12,6 +12,7 @@ use ndk::{
looper::{ForeignLooper, Poll, ThreadLooper},
};
use ndk_glue::{Event, Rect};
use raw_window_handle::{AndroidNDKHandle, RawWindowHandle};
use std::{
collections::VecDeque,
sync::{Arc, Mutex, RwLock},
Expand Down Expand Up @@ -587,15 +588,14 @@ impl Window {
))
}

pub fn raw_window_handle(&self) -> raw_window_handle::RawWindowHandle {
let a_native_window = if let Some(native_window) = ndk_glue::native_window().as_ref() {
pub fn raw_window_handle(&self) -> RawWindowHandle {
let mut handle = AndroidNDKHandle::empty();
handle.a_native_window = if let Some(native_window) = ndk_glue::native_window().as_ref() {
unsafe { native_window.ptr().as_mut() as *mut _ as *mut _ }
} else {
panic!("Cannot get the native window, it's null and will always be null before Event::Resumed and after Event::Suspended. Make sure you only call this function between those events.");
};
let mut handle = raw_window_handle::android::AndroidHandle::empty();
handle.a_native_window = a_native_window;
raw_window_handle::RawWindowHandle::Android(handle)
RawWindowHandle::AndroidNDK(handle)
}

pub fn config(&self) -> Configuration {
Expand Down
14 changes: 6 additions & 8 deletions src/platform_impl/ios/window.rs
@@ -1,4 +1,4 @@
use raw_window_handle::{ios::IOSHandle, RawWindowHandle};
use raw_window_handle::{RawWindowHandle, UIKitHandle};
use std::{
collections::VecDeque,
ops::{Deref, DerefMut},
Expand Down Expand Up @@ -307,13 +307,11 @@ impl Inner {
}

pub fn raw_window_handle(&self) -> RawWindowHandle {
let handle = IOSHandle {
ui_window: self.window as _,
ui_view: self.view as _,
ui_view_controller: self.view_controller as _,
..IOSHandle::empty()
};
RawWindowHandle::IOS(handle)
let mut handle = UIKitHandle::empty();
handle.ui_window = self.window as _;
handle.ui_view = self.view as _;
handle.ui_view_controller = self.view_controller as _;
RawWindowHandle::UIKit(handle)
}
}

Expand Down
14 changes: 5 additions & 9 deletions src/platform_impl/linux/wayland/window/mod.rs
Expand Up @@ -11,7 +11,7 @@ use sctk::window::{
ARGBColor, ButtonColorSpec, ColorSpec, ConceptConfig, ConceptFrame, Decorations,
};

use raw_window_handle::unix::WaylandHandle;
use raw_window_handle::WaylandHandle;

use crate::dpi::{LogicalSize, PhysicalPosition, PhysicalSize, Position, Size};
use crate::error::{ExternalError, NotSupportedError, OsError as RootOsError};
Expand Down Expand Up @@ -638,14 +638,10 @@ impl Window {

#[inline]
pub fn raw_window_handle(&self) -> WaylandHandle {
let display = self.display.get_display_ptr() as *mut _;
let surface = self.surface.as_ref().c_ptr() as *mut _;

WaylandHandle {
display,
surface,
..WaylandHandle::empty()
}
let mut handle = WaylandHandle::empty();
handle.display = self.display.get_display_ptr() as *mut _;
handle.surface = self.surface.as_ref().c_ptr() as *mut _;
handle
}
}

Expand Down
11 changes: 5 additions & 6 deletions src/platform_impl/linux/x11/window.rs
@@ -1,4 +1,4 @@
use raw_window_handle::unix::XlibHandle;
use raw_window_handle::XlibHandle;
use std::{
cmp, env,
ffi::CString,
Expand Down Expand Up @@ -1404,10 +1404,9 @@ impl UnownedWindow {

#[inline]
pub fn raw_window_handle(&self) -> XlibHandle {
XlibHandle {
window: self.xwindow,
display: self.xconn.display as _,
..XlibHandle::empty()
}
let mut handle = XlibHandle::empty();
handle.window = self.xwindow;
handle.display = self.xconn.display as _;
handle
}
}
12 changes: 5 additions & 7 deletions src/platform_impl/macos/window.rs
@@ -1,4 +1,4 @@
use raw_window_handle::{macos::MacOSHandle, RawWindowHandle};
use raw_window_handle::{AppKitHandle, RawWindowHandle};
use std::{
collections::VecDeque,
f64,
Expand Down Expand Up @@ -1022,12 +1022,10 @@ impl UnownedWindow {

#[inline]
pub fn raw_window_handle(&self) -> RawWindowHandle {
let handle = MacOSHandle {
ns_window: *self.ns_window as *mut _,
ns_view: *self.ns_view as *mut _,
..MacOSHandle::empty()
};
RawWindowHandle::MacOS(handle)
let mut handle = AppKitHandle::empty();
handle.ns_window = *self.ns_window as *mut _;
handle.ns_view = *self.ns_view as *mut _;
RawWindowHandle::AppKit(handle)
}
}

Expand Down
13 changes: 5 additions & 8 deletions src/platform_impl/web/window.rs
Expand Up @@ -7,7 +7,7 @@ use crate::window::{
CursorIcon, Fullscreen, UserAttentionType, WindowAttributes, WindowId as RootWI,
};

use raw_window_handle::web::WebHandle;
use raw_window_handle::{RawWindowHandle, WebHandle};

use super::{backend, monitor, EventLoopWindowTarget};

Expand Down Expand Up @@ -322,13 +322,10 @@ impl Window {
}

#[inline]
pub fn raw_window_handle(&self) -> raw_window_handle::RawWindowHandle {
let handle = WebHandle {
id: self.id.0,
..WebHandle::empty()
};

raw_window_handle::RawWindowHandle::Web(handle)
pub fn raw_window_handle(&self) -> RawWindowHandle {
let mut handle = WebHandle::empty();
handle.id = self.id.0;
RawWindowHandle::Web(handle)
}
}

Expand Down
12 changes: 5 additions & 7 deletions src/platform_impl/windows/window.rs
@@ -1,7 +1,7 @@
#![cfg(target_os = "windows")]

use parking_lot::Mutex;
use raw_window_handle::{windows::WindowsHandle, RawWindowHandle};
use raw_window_handle::{RawWindowHandle, Win32Handle};
use std::{
cell::Cell,
ffi::OsStr,
Expand Down Expand Up @@ -284,12 +284,10 @@ impl Window {

#[inline]
pub fn raw_window_handle(&self) -> RawWindowHandle {
let handle = WindowsHandle {
hwnd: self.window.0 as *mut _,
hinstance: self.hinstance() as *mut _,
..WindowsHandle::empty()
};
RawWindowHandle::Windows(handle)
let mut handle = Win32Handle::empty();
handle.hwnd = self.window.0 as *mut _;
handle.hinstance = self.hinstance() as *mut _;
RawWindowHandle::Win32(handle)
}

#[inline]
Expand Down

0 comments on commit deba6fd

Please sign in to comment.