Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop exposing wayland_client's types #202

Merged
merged 2 commits into from
Jun 24, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ kernel32-sys = "0.2"
dwmapi-sys = "0.1"

[target.'cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd"))'.dependencies]
wayland-client = { version = "0.8.6", features = ["dlopen"] }
wayland-kbd = "0.8.0"
wayland-window = "0.5.0"
wayland-client = { version = "0.9.9", features = ["dlopen"] }
wayland-kbd = "0.9.1"
wayland-window = "0.6.1"
tempfile = "2.1"
x11-dl = "2.8"
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ extern crate core_graphics;
#[cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd"))]
extern crate x11_dl;
#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd"))]
#[macro_use(wayland_env,declare_handler)]
#[macro_use]
extern crate wayland_client;

pub use events::*;
Expand Down
40 changes: 4 additions & 36 deletions src/os/unix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ use WindowBuilder;
use platform::x11::XConnection;
use platform::x11::ffi::XVisualInfo;

use wayland_client::protocol::wl_display::WlDisplay;
use wayland_client::protocol::wl_surface::WlSurface;

pub use platform::x11;

// TODO: do not expose XConnection
Expand Down Expand Up @@ -63,24 +60,6 @@ pub trait WindowExt {
///
/// The pointer will become invalid when the glutin `Window` is destroyed.
fn get_wayland_display(&self) -> Option<*mut libc::c_void>;

/// Returns a reference to the `WlSurface` object of wayland that is used by this window.
///
/// For use with the `wayland-client` crate.
///
/// **This function is not part of winit's public API.**
///
/// Returns `None` if the window doesn't use wayland (if it uses xlib for example).
fn get_wayland_client_surface(&self) -> Option<&WlSurface>;

/// Returns a pointer to the `WlDisplay` object of wayland that is used by this window.
///
/// For use with the `wayland-client` crate.
///
/// **This function is not part of winit's public API.**
///
/// Returns `None` if the window doesn't use wayland (if it uses xlib for example).
fn get_wayland_client_display(&self) -> Option<&WlDisplay>;
}

impl WindowExt for Window {
Expand Down Expand Up @@ -124,28 +103,17 @@ impl WindowExt for Window {
#[inline]
fn get_wayland_surface(&self) -> Option<*mut libc::c_void> {
use wayland_client::Proxy;
self.get_wayland_client_surface().map(|p| p.ptr() as *mut _)
}


#[inline]
fn get_wayland_display(&self) -> Option<*mut libc::c_void> {
use wayland_client::Proxy;
self.get_wayland_client_display().map(|p| p.ptr() as *mut _)
}

#[inline]
fn get_wayland_client_surface(&self) -> Option<&WlSurface> {
match self.window {
LinuxWindow::Wayland(ref w) => Some(w.get_surface()),
LinuxWindow::Wayland(ref w) => Some(w.get_surface().ptr() as *mut _),
_ => None
}
}

#[inline]
fn get_wayland_client_display(&self) -> Option<&WlDisplay> {
fn get_wayland_display(&self) -> Option<*mut libc::c_void> {
use wayland_client::Proxy;
match self.window {
LinuxWindow::Wayland(ref w) => Some(w.get_display()),
LinuxWindow::Wayland(ref w) => Some(w.get_display().ptr() as *mut _),
_ => None
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/platform/linux/wayland/event_loop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use std::sync::atomic::{self, AtomicBool};
use super::{DecoratedHandler, WindowId, DeviceId, WaylandContext};


use wayland_client::{EventQueue, EventQueueHandle, Init, Proxy};
use wayland_client::{EventQueue, EventQueueHandle, Init, Proxy, Liveness};
use wayland_client::protocol::{wl_seat, wl_surface, wl_pointer, wl_keyboard};

use super::make_wid;
Expand Down Expand Up @@ -159,13 +159,13 @@ impl EventsLoop {
}

fn prune_dead_windows(&self) {
self.decorated_ids.lock().unwrap().retain(|&(_, ref w)| w.is_alive());
self.decorated_ids.lock().unwrap().retain(|&(_, ref w)| w.status() == Liveness::Alive);
let mut evq_guard = self.evq.lock().unwrap();
let mut state = evq_guard.state();
let handler = state.get_mut_handler::<InputHandler>(self.hid);
handler.windows.retain(|w| w.is_alive());
handler.windows.retain(|w| w.status() == Liveness::Alive);
if let Some(w) = handler.mouse_focus.take() {
if w.is_alive() {
if w.status() == Liveness::Alive {
handler.mouse_focus = Some(w)
}
}
Expand Down