Make wayland support optional
This commit is contained in:
parent
48264926e6
commit
89dce178c8
|
@ -46,6 +46,7 @@ env:
|
||||||
- FEATURES="backend_session_logind"
|
- FEATURES="backend_session_logind"
|
||||||
- FEATURES="renderer_gl"
|
- FEATURES="renderer_gl"
|
||||||
- FEATURES="renderer_glium"
|
- FEATURES="renderer_glium"
|
||||||
|
- FEATURES="wayland_frontend"
|
||||||
- FEATURES="xwayland"
|
- FEATURES="xwayland"
|
||||||
# test default features
|
# test default features
|
||||||
- FEATURES="default"
|
- FEATURES="default"
|
||||||
|
|
18
Cargo.toml
18
Cargo.toml
|
@ -11,9 +11,10 @@ edition = "2018"
|
||||||
members = [ "anvil" ]
|
members = [ "anvil" ]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
wayland-server = "0.21.6"
|
wayland-server = { version = "0.21.6", optional = true }
|
||||||
wayland-commons = "0.21.1"
|
wayland-commons = { version = "0.21.1", optional = true }
|
||||||
wayland-sys = { version = "0.21.6", optional = true }
|
wayland-sys = { version = "0.21.6", optional = true }
|
||||||
|
calloop = "0.4.2"
|
||||||
nix = "0.11"
|
nix = "0.11"
|
||||||
xkbcommon = "0.2.1"
|
xkbcommon = "0.2.1"
|
||||||
tempfile = "2.1.5"
|
tempfile = "2.1.5"
|
||||||
|
@ -29,8 +30,8 @@ input = { version = "0.4.1", optional = true }
|
||||||
udev = { version = "0.2.0", optional = true }
|
udev = { version = "0.2.0", optional = true }
|
||||||
dbus = { version = "0.6.1", optional = true }
|
dbus = { version = "0.6.1", optional = true }
|
||||||
systemd = { version = "^0.2.0", optional = true }
|
systemd = { version = "^0.2.0", optional = true }
|
||||||
wayland-protocols = { version = "0.21.3", features = ["unstable_protocols", "server"] }
|
wayland-protocols = { version = "0.21.3", features = ["unstable_protocols", "server"], optional = true }
|
||||||
image = "0.17.0"
|
image = { version = "0.17.0", optional = true }
|
||||||
error-chain = "0.11.0"
|
error-chain = "0.11.0"
|
||||||
lazy_static = "1.0.0"
|
lazy_static = "1.0.0"
|
||||||
|
|
||||||
|
@ -41,11 +42,11 @@ slog-term = "2.3"
|
||||||
gl_generator = { version = "0.9", optional = true }
|
gl_generator = { version = "0.9", optional = true }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["backend_winit", "backend_drm_legacy", "backend_drm_gbm", "backend_drm_egl", "backend_libinput", "backend_udev", "backend_session", "renderer_glium", "xwayland"]
|
default = ["backend_winit", "backend_drm_legacy", "backend_drm_gbm", "backend_drm_egl", "backend_libinput", "backend_udev", "backend_session", "renderer_glium", "xwayland", "wayland_frontend"]
|
||||||
backend_winit = ["winit", "wayland-server/dlopen", "wayland-client/dlopen", "backend_egl", "renderer_gl", "native_lib"]
|
backend_winit = ["winit", "wayland-server/dlopen", "wayland-client/dlopen", "backend_egl", "renderer_gl", "native_lib"]
|
||||||
backend_drm = ["drm"]
|
backend_drm = ["drm"]
|
||||||
backend_drm_legacy = ["backend_drm"]
|
backend_drm_legacy = ["backend_drm"]
|
||||||
backend_drm_gbm = ["backend_drm", "gbm"]
|
backend_drm_gbm = ["backend_drm", "gbm", "image"]
|
||||||
backend_drm_egl = ["backend_drm", "backend_egl"]
|
backend_drm_egl = ["backend_drm", "backend_egl"]
|
||||||
backend_egl = ["gl_generator"]
|
backend_egl = ["gl_generator"]
|
||||||
backend_libinput = ["input"]
|
backend_libinput = ["input"]
|
||||||
|
@ -54,8 +55,9 @@ backend_udev = ["udev"]
|
||||||
backend_session_logind = ["dbus", "systemd", "backend_session"]
|
backend_session_logind = ["dbus", "systemd", "backend_session"]
|
||||||
renderer_gl = ["gl_generator"]
|
renderer_gl = ["gl_generator"]
|
||||||
renderer_glium = ["renderer_gl", "glium"]
|
renderer_glium = ["renderer_gl", "glium"]
|
||||||
native_lib = ["wayland-sys", "wayland-server/native_lib", "wayland-protocols/native_server"]
|
native_lib = ["wayland_frontend", "wayland-sys", "wayland-server/native_lib", "wayland-protocols/native_server"]
|
||||||
xwayland = []
|
wayland_frontend = ["wayland-server", "wayland-commons", "wayland-protocols"]
|
||||||
|
xwayland = ["wayland_frontend"]
|
||||||
|
|
||||||
[[example]]
|
[[example]]
|
||||||
name = "raw_drm"
|
name = "raw_drm"
|
||||||
|
|
|
@ -18,7 +18,7 @@ xkbcommon = "0.2.1"
|
||||||
[dependencies.smithay]
|
[dependencies.smithay]
|
||||||
path = ".."
|
path = ".."
|
||||||
default-features = false
|
default-features = false
|
||||||
features = [ "renderer_glium", "backend_egl" ]
|
features = [ "renderer_glium", "backend_egl", "wayland_frontend" ]
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
gl_generator = "0.9"
|
gl_generator = "0.9"
|
||||||
|
|
|
@ -8,7 +8,7 @@ extern crate slog;
|
||||||
extern crate smithay;
|
extern crate smithay;
|
||||||
|
|
||||||
use slog::Drain;
|
use slog::Drain;
|
||||||
use smithay::reexports::wayland_server::{calloop::EventLoop, Display};
|
use smithay::reexports::{calloop::EventLoop, wayland_server::Display};
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
mod shaders;
|
mod shaders;
|
||||||
|
|
|
@ -6,7 +6,10 @@ use std::{
|
||||||
|
|
||||||
use smithay::{
|
use smithay::{
|
||||||
backend::{egl::EGLGraphicsBackend, graphics::gl::GLGraphicsBackend, input::InputBackend, winit},
|
backend::{egl::EGLGraphicsBackend, graphics::gl::GLGraphicsBackend, input::InputBackend, winit},
|
||||||
reexports::wayland_server::{calloop::EventLoop, protocol::wl_output, Display},
|
reexports::{
|
||||||
|
calloop::EventLoop,
|
||||||
|
wayland_server::{protocol::wl_output, Display},
|
||||||
|
},
|
||||||
wayland::{
|
wayland::{
|
||||||
data_device::{default_action_chooser, init_data_device, set_data_device_focus, DataDeviceEvent},
|
data_device::{default_action_chooser, init_data_device, set_data_device_focus, DataDeviceEvent},
|
||||||
output::{Mode, Output, PhysicalProperties},
|
output::{Mode, Output, PhysicalProperties},
|
||||||
|
|
|
@ -11,6 +11,7 @@ use smithay::{
|
||||||
Device, DeviceHandler, RawSurface, Surface,
|
Device, DeviceHandler, RawSurface, Surface,
|
||||||
},
|
},
|
||||||
reexports::{
|
reexports::{
|
||||||
|
calloop::EventLoop,
|
||||||
drm::{
|
drm::{
|
||||||
buffer::PixelFormat,
|
buffer::PixelFormat,
|
||||||
control::{
|
control::{
|
||||||
|
@ -20,7 +21,6 @@ use smithay::{
|
||||||
encoder, framebuffer, Device as ControlDevice, ResourceInfo,
|
encoder, framebuffer, Device as ControlDevice, ResourceInfo,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wayland_server::calloop::EventLoop,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use std::{
|
use std::{
|
||||||
|
|
|
@ -12,6 +12,7 @@ use drm::control::{crtc, ResourceHandles, ResourceInfo};
|
||||||
use nix::libc::dev_t;
|
use nix::libc::dev_t;
|
||||||
use std::os::unix::io::{AsRawFd, RawFd};
|
use std::os::unix::io::{AsRawFd, RawFd};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
#[cfg(feature = "native_lib")]
|
||||||
use wayland_server::Display;
|
use wayland_server::Display;
|
||||||
|
|
||||||
use super::{Device, DeviceHandler, Surface};
|
use super::{Device, DeviceHandler, Surface};
|
||||||
|
|
|
@ -46,10 +46,10 @@ use std::iter::IntoIterator;
|
||||||
use std::os::unix::io::AsRawFd;
|
use std::os::unix::io::AsRawFd;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use wayland_server::calloop::generic::{EventedFd, Generic};
|
use calloop::generic::{EventedFd, Generic};
|
||||||
use wayland_server::calloop::mio::Ready;
|
use calloop::mio::Ready;
|
||||||
use wayland_server::calloop::InsertError;
|
use calloop::InsertError;
|
||||||
use wayland_server::calloop::{LoopHandle, Source};
|
use calloop::{LoopHandle, Source};
|
||||||
|
|
||||||
use super::graphics::SwapBuffersError;
|
use super::graphics::SwapBuffersError;
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ pub trait Device: AsRawFd + DevPath {
|
||||||
///
|
///
|
||||||
/// You should not call this function manually, but rather use
|
/// You should not call this function manually, but rather use
|
||||||
/// [`device_bind`] to register the device
|
/// [`device_bind`] to register the device
|
||||||
/// to an [`EventLoop`](wayland_server::calloop::EventLoop)
|
/// to an [`EventLoop`](calloop::EventLoop)
|
||||||
/// to synchronize your rendering to the vblank events of the open crtc's
|
/// to synchronize your rendering to the vblank events of the open crtc's
|
||||||
fn process_events(&mut self);
|
fn process_events(&mut self);
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ impl<A: AsRawFd> DevPath for A {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bind a `Device` to an [`EventLoop`](wayland_server::calloop::EventLoop),
|
/// Bind a `Device` to an [`EventLoop`](calloop::EventLoop),
|
||||||
///
|
///
|
||||||
/// This will cause it to recieve events and feed them into a previously
|
/// This will cause it to recieve events and feed them into a previously
|
||||||
/// set [`DeviceHandler`](DeviceHandler).
|
/// set [`DeviceHandler`](DeviceHandler).
|
||||||
|
|
|
@ -26,6 +26,7 @@ use std::{
|
||||||
fmt,
|
fmt,
|
||||||
rc::{Rc, Weak},
|
rc::{Rc, Weak},
|
||||||
};
|
};
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
use wayland_server::{
|
use wayland_server::{
|
||||||
protocol::wl_buffer::{self, WlBuffer},
|
protocol::wl_buffer::{self, WlBuffer},
|
||||||
Display, Resource,
|
Display, Resource,
|
||||||
|
@ -72,6 +73,7 @@ impl ::std::error::Error for EglExtensionNotSupportedError {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Error that can occur when accessing an EGL buffer
|
/// Error that can occur when accessing an EGL buffer
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
pub enum BufferAccessError {
|
pub enum BufferAccessError {
|
||||||
/// The corresponding Context is not alive anymore
|
/// The corresponding Context is not alive anymore
|
||||||
ContextLost,
|
ContextLost,
|
||||||
|
@ -83,6 +85,7 @@ pub enum BufferAccessError {
|
||||||
EglExtensionNotSupported(EglExtensionNotSupportedError),
|
EglExtensionNotSupported(EglExtensionNotSupportedError),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
impl fmt::Debug for BufferAccessError {
|
impl fmt::Debug for BufferAccessError {
|
||||||
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> ::std::result::Result<(), fmt::Error> {
|
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> ::std::result::Result<(), fmt::Error> {
|
||||||
match *self {
|
match *self {
|
||||||
|
@ -96,6 +99,7 @@ impl fmt::Debug for BufferAccessError {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
impl fmt::Display for BufferAccessError {
|
impl fmt::Display for BufferAccessError {
|
||||||
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> ::std::result::Result<(), fmt::Error> {
|
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> ::std::result::Result<(), fmt::Error> {
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
|
@ -108,6 +112,7 @@ impl fmt::Display for BufferAccessError {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
impl ::std::error::Error for BufferAccessError {
|
impl ::std::error::Error for BufferAccessError {
|
||||||
fn description(&self) -> &str {
|
fn description(&self) -> &str {
|
||||||
match *self {
|
match *self {
|
||||||
|
@ -126,6 +131,7 @@ impl ::std::error::Error for BufferAccessError {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
impl From<EglExtensionNotSupportedError> for BufferAccessError {
|
impl From<EglExtensionNotSupportedError> for BufferAccessError {
|
||||||
fn from(error: EglExtensionNotSupportedError) -> Self {
|
fn from(error: EglExtensionNotSupportedError) -> Self {
|
||||||
BufferAccessError::EglExtensionNotSupported(error)
|
BufferAccessError::EglExtensionNotSupported(error)
|
||||||
|
@ -221,6 +227,7 @@ impl Format {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Images of the EGL-based [`WlBuffer`].
|
/// Images of the EGL-based [`WlBuffer`].
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
pub struct EGLImages {
|
pub struct EGLImages {
|
||||||
display: Weak<ffi::egl::types::EGLDisplay>,
|
display: Weak<ffi::egl::types::EGLDisplay>,
|
||||||
/// Width in pixels
|
/// Width in pixels
|
||||||
|
@ -239,6 +246,7 @@ pub struct EGLImages {
|
||||||
egl_to_texture_support: bool,
|
egl_to_texture_support: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
impl EGLImages {
|
impl EGLImages {
|
||||||
/// Amount of planes of these `EGLImages`
|
/// Amount of planes of these `EGLImages`
|
||||||
pub fn num_planes(&self) -> usize {
|
pub fn num_planes(&self) -> usize {
|
||||||
|
@ -285,6 +293,7 @@ impl EGLImages {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
impl Drop for EGLImages {
|
impl Drop for EGLImages {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
if let Some(display) = self.display.upgrade() {
|
if let Some(display) = self.display.upgrade() {
|
||||||
|
|
|
@ -15,7 +15,7 @@ use std::{
|
||||||
os::unix::io::{AsRawFd, RawFd},
|
os::unix::io::{AsRawFd, RawFd},
|
||||||
};
|
};
|
||||||
|
|
||||||
use wayland_server::calloop::{
|
use calloop::{
|
||||||
generic::{EventedFd, Generic},
|
generic::{EventedFd, Generic},
|
||||||
mio::Ready,
|
mio::Ready,
|
||||||
InsertError, LoopHandle, Source,
|
InsertError, LoopHandle, Source,
|
||||||
|
|
|
@ -37,7 +37,7 @@ use super::{
|
||||||
use nix::fcntl::OFlag;
|
use nix::fcntl::OFlag;
|
||||||
use std::{cell::RefCell, io::Error as IoError, os::unix::io::RawFd, path::Path, rc::Rc};
|
use std::{cell::RefCell, io::Error as IoError, os::unix::io::RawFd, path::Path, rc::Rc};
|
||||||
|
|
||||||
use wayland_server::calloop::LoopHandle;
|
use calloop::LoopHandle;
|
||||||
|
|
||||||
/// [`Session`] using the best available interface
|
/// [`Session`] using the best available interface
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
@ -58,7 +58,7 @@ pub enum AutoSessionNotifier {
|
||||||
Direct(DirectSessionNotifier),
|
Direct(DirectSessionNotifier),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bound session that is driven by a [`EventLoop`](wayland_server::calloop::EventLoop).
|
/// Bound session that is driven by a [`EventLoop`](calloop::EventLoop).
|
||||||
///
|
///
|
||||||
/// See [`auto_session_bind`] for details.
|
/// See [`auto_session_bind`] for details.
|
||||||
///
|
///
|
||||||
|
@ -139,7 +139,7 @@ impl AutoSession {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bind an [`AutoSessionNotifier`] to an [`EventLoop`](wayland_server::calloop::EventLoop).
|
/// Bind an [`AutoSessionNotifier`] to an [`EventLoop`](calloop::EventLoop).
|
||||||
///
|
///
|
||||||
/// Allows the [`AutoSessionNotifier`] to listen for incoming signals signalling the session state.
|
/// Allows the [`AutoSessionNotifier`] to listen for incoming signals signalling the session state.
|
||||||
/// If you don't use this function [`AutoSessionNotifier`] will not correctly tell you the
|
/// If you don't use this function [`AutoSessionNotifier`] will not correctly tell you the
|
||||||
|
@ -233,7 +233,7 @@ impl SessionNotifier for AutoSessionNotifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BoundAutoSession {
|
impl BoundAutoSession {
|
||||||
/// Unbind the session from the [`EventLoop`](wayland_server::calloop::EventLoop) again
|
/// Unbind the session from the [`EventLoop`](calloop::EventLoop) again
|
||||||
pub fn unbind(self) -> AutoSessionNotifier {
|
pub fn unbind(self) -> AutoSessionNotifier {
|
||||||
match self {
|
match self {
|
||||||
#[cfg(feature = "backend_session_logind")]
|
#[cfg(feature = "backend_session_logind")]
|
||||||
|
|
|
@ -50,7 +50,7 @@ use std::{
|
||||||
};
|
};
|
||||||
use systemd::login;
|
use systemd::login;
|
||||||
|
|
||||||
use wayland_server::calloop::{
|
use calloop::{
|
||||||
generic::{Event, EventedRawFd, Generic},
|
generic::{Event, EventedRawFd, Generic},
|
||||||
mio::Ready,
|
mio::Ready,
|
||||||
InsertError, LoopHandle, Source,
|
InsertError, LoopHandle, Source,
|
||||||
|
@ -418,7 +418,7 @@ impl SessionNotifier for LogindSessionNotifier {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bound logind session that is driven by the [`EventLoop`](wayland_server::calloop::EventLoop).
|
/// Bound logind session that is driven by the [`EventLoop`](calloop::EventLoop).
|
||||||
///
|
///
|
||||||
/// See [`logind_session_bind`] for details.
|
/// See [`logind_session_bind`] for details.
|
||||||
///
|
///
|
||||||
|
@ -429,7 +429,7 @@ pub struct BoundLogindSession {
|
||||||
sources: Vec<Source<Generic<EventedRawFd>>>,
|
sources: Vec<Source<Generic<EventedRawFd>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bind a [`LogindSessionNotifier`] to an [`EventLoop`](wayland_server::calloop::EventLoop).
|
/// Bind a [`LogindSessionNotifier`] to an [`EventLoop`](calloop::EventLoop).
|
||||||
///
|
///
|
||||||
/// Allows the [`LogindSessionNotifier`] to listen for incoming signals signalling the session state.
|
/// Allows the [`LogindSessionNotifier`] to listen for incoming signals signalling the session state.
|
||||||
/// If you don't use this function [`LogindSessionNotifier`] will not correctly tell you the logind
|
/// If you don't use this function [`LogindSessionNotifier`] will not correctly tell you the logind
|
||||||
|
@ -472,7 +472,7 @@ pub fn logind_session_bind<Data: 'static>(
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BoundLogindSession {
|
impl BoundLogindSession {
|
||||||
/// Unbind the logind session from the [`EventLoop`](wayland_server::calloop::EventLoop)
|
/// Unbind the logind session from the [`EventLoop`](calloop::EventLoop)
|
||||||
pub fn unbind(self) -> LogindSessionNotifier {
|
pub fn unbind(self) -> LogindSessionNotifier {
|
||||||
for source in self.sources {
|
for source in self.sources {
|
||||||
source.remove();
|
source.remove();
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
//! for notifications are the [`Libinput`](input::Libinput) context or the [`Device`](::backend::drm::Device).
|
//! for notifications are the [`Libinput`](input::Libinput) context or the [`Device`](::backend::drm::Device).
|
||||||
|
|
||||||
use super::{AsErrno, Session, SessionNotifier, SessionObserver};
|
use super::{AsErrno, Session, SessionNotifier, SessionObserver};
|
||||||
|
use calloop::{signals::Signals, LoopHandle, Source};
|
||||||
use nix::{
|
use nix::{
|
||||||
fcntl::{self, open, OFlag},
|
fcntl::{self, open, OFlag},
|
||||||
libc::c_int,
|
libc::c_int,
|
||||||
|
@ -68,7 +69,6 @@ use std::{
|
||||||
};
|
};
|
||||||
#[cfg(feature = "backend_udev")]
|
#[cfg(feature = "backend_udev")]
|
||||||
use udev::Context;
|
use udev::Context;
|
||||||
use wayland_server::calloop::{signals::Signals, LoopHandle, Source};
|
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
mod tty {
|
mod tty {
|
||||||
|
@ -390,7 +390,7 @@ impl DirectSessionNotifier {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bound logind session that is driven by the [`EventLoop`](wayland_server::calloop::EventLoop).
|
/// Bound logind session that is driven by the [`EventLoop`](calloop::EventLoop).
|
||||||
///
|
///
|
||||||
/// See [`direct_session_bind`] for details.
|
/// See [`direct_session_bind`] for details.
|
||||||
pub struct BoundDirectSession {
|
pub struct BoundDirectSession {
|
||||||
|
@ -399,7 +399,7 @@ pub struct BoundDirectSession {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BoundDirectSession {
|
impl BoundDirectSession {
|
||||||
/// Unbind the direct session from the [`EventLoop`](wayland_server::calloop::EventLoop)
|
/// Unbind the direct session from the [`EventLoop`](calloop::EventLoop)
|
||||||
pub fn unbind(self) -> DirectSessionNotifier {
|
pub fn unbind(self) -> DirectSessionNotifier {
|
||||||
let BoundDirectSession { source, notifier } = self;
|
let BoundDirectSession { source, notifier } = self;
|
||||||
source.remove();
|
source.remove();
|
||||||
|
@ -410,7 +410,7 @@ impl BoundDirectSession {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bind a [`DirectSessionNotifier`] to an [`EventLoop`](wayland_server::calloop::EventLoop).
|
/// Bind a [`DirectSessionNotifier`] to an [`EventLoop`](calloop::EventLoop).
|
||||||
///
|
///
|
||||||
/// Allows the [`DirectSessionNotifier`] to listen for incoming signals signalling the session state.
|
/// Allows the [`DirectSessionNotifier`] to listen for incoming signals signalling the session state.
|
||||||
/// If you don't use this function [`DirectSessionNotifier`] will not correctly tell you the current
|
/// If you don't use this function [`DirectSessionNotifier`] will not correctly tell you the current
|
||||||
|
|
|
@ -18,7 +18,7 @@ use std::{
|
||||||
};
|
};
|
||||||
use udev::{Context, Enumerator, EventType, MonitorBuilder, MonitorSocket, Result as UdevResult};
|
use udev::{Context, Enumerator, EventType, MonitorBuilder, MonitorSocket, Result as UdevResult};
|
||||||
|
|
||||||
use wayland_server::calloop::{
|
use calloop::{
|
||||||
generic::{EventedFd, Generic},
|
generic::{EventedFd, Generic},
|
||||||
mio::Ready,
|
mio::Ready,
|
||||||
InsertError, LoopHandle, Source,
|
InsertError, LoopHandle, Source,
|
||||||
|
@ -97,7 +97,7 @@ impl<T: UdevHandler + 'static> Drop for UdevBackend<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Binds a [`UdevBackend`] to a given [`EventLoop`](wayland_server::calloop::EventLoop).
|
/// Binds a [`UdevBackend`] to a given [`EventLoop`](calloop::EventLoop).
|
||||||
///
|
///
|
||||||
/// Allows the backend to receive kernel events and thus to drive the [`UdevHandler`].
|
/// Allows the backend to receive kernel events and thus to drive the [`UdevHandler`].
|
||||||
/// No runtime functionality can be provided without using this function.
|
/// No runtime functionality can be provided without using this function.
|
||||||
|
|
|
@ -19,6 +19,7 @@ extern crate lazy_static;
|
||||||
|
|
||||||
pub mod backend;
|
pub mod backend;
|
||||||
pub mod utils;
|
pub mod utils;
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
pub mod wayland;
|
pub mod wayland;
|
||||||
|
|
||||||
#[cfg(feature = "xwayland")]
|
#[cfg(feature = "xwayland")]
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
//! Reexports of crates, that are part of the public api, for convenience
|
//! Reexports of crates, that are part of the public api, for convenience
|
||||||
|
|
||||||
|
pub use calloop;
|
||||||
#[cfg(feature = "dbus")]
|
#[cfg(feature = "dbus")]
|
||||||
pub use dbus;
|
pub use dbus;
|
||||||
#[cfg(feature = "backend_drm")]
|
#[cfg(feature = "backend_drm")]
|
||||||
|
@ -16,6 +17,9 @@ pub use nix;
|
||||||
pub use systemd;
|
pub use systemd;
|
||||||
#[cfg(feature = "backend_udev")]
|
#[cfg(feature = "backend_udev")]
|
||||||
pub use udev;
|
pub use udev;
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
pub use wayland_commons;
|
pub use wayland_commons;
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
pub use wayland_protocols;
|
pub use wayland_protocols;
|
||||||
|
#[cfg(feature = "wayland_frontend")]
|
||||||
pub use wayland_server;
|
pub use wayland_server;
|
||||||
|
|
Loading…
Reference in New Issue