Skip to content
Draft
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
13 changes: 13 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -147,3 +147,16 @@ harness = false
[profile.release-with-debug]
inherits = "release"
debug = true

[patch.crates-io]
wayland-sys = { git = "https://github.com/smithay/wayland-rs" }
wayland-egl = { git = "https://github.com/smithay/wayland-rs" }
wayland-backend = { git = "https://github.com/smithay/wayland-rs" }
wayland-server = { git = "https://github.com/smithay/wayland-rs" }
wayland-scanner = { git = "https://github.com/smithay/wayland-rs" }
wayland-client = { git = "https://github.com/smithay/wayland-rs" }
wayland-protocols = { git = "https://github.com/smithay/wayland-rs" }
wayland-protocols-wlr = { git = "https://github.com/smithay/wayland-rs" }
wayland-cursor = { git = "https://github.com/smithay/wayland-rs" }
winit = { git = "https://github.com/ids1024/winit", branch = "dispatch2" }
gbm = { git = "https://github.com/ids1024/gbm.rs", branch = "wayland-rs" }
2 changes: 1 addition & 1 deletion anvil/src/shell/grabs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ bitflags::bitflags! {
impl From<xdg_toplevel::ResizeEdge> for ResizeEdge {
#[inline]
fn from(x: xdg_toplevel::ResizeEdge) -> Self {
Self::from_bits(x as u32).unwrap()
Self::from_bits(u32::from(x)).unwrap()
}
}

Expand Down
3 changes: 0 additions & 3 deletions anvil/src/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ use smithay::{
RenderElementStates, default_primary_scanout_output_compare, utils::select_dmabuf_feedback,
},
},
delegate_dispatch2,
desktop::{
PopupKind, PopupManager, Space,
space::SpaceElement,
Expand Down Expand Up @@ -617,8 +616,6 @@ impl<BackendData: Backend> ImageCopyCaptureHandler for AnvilState<BackendData> {
}
}

delegate_dispatch2!(@<BackendData: Backend + 'static> AnvilState<BackendData>);

impl<BackendData: Backend + 'static> AnvilState<BackendData> {
pub fn init(
display: Display<AnvilState<BackendData>>,
Expand Down
16 changes: 8 additions & 8 deletions src/backend/egl/display.rs
Original file line number Diff line number Diff line change
Expand Up @@ -865,7 +865,7 @@ impl EGLDisplay {
ffi::egl::BindWaylandDisplayWL(**self.display, display_ptr as *mut _)
})
.map_err(Error::OtherEGLDisplayAlreadyBound)?;
let reader = EGLBufferReader::new(self.display.clone(), display_ptr);
let reader = EGLBufferReader::new(self.display.clone(), display_ptr as _);
let mut global = BUFFER_READER.lock().unwrap();
if global.as_ref().and_then(|x| x.upgrade()).is_some() {
warn!("Double bind_wl_display, smithay does not support this, please report");
Expand Down Expand Up @@ -1065,7 +1065,7 @@ impl EGLBufferReader {
let query = wrap_egl_call_bool(|| unsafe {
ffi::egl::QueryWaylandBufferWL(
**self.display,
buffer.id().as_ptr() as _,
buffer.id().as_ptr().unwrap().as_ptr(),
ffi::egl::EGL_TEXTURE_FORMAT,
&mut format,
)
Expand Down Expand Up @@ -1095,7 +1095,7 @@ impl EGLBufferReader {
wrap_egl_call_bool(|| unsafe {
ffi::egl::QueryWaylandBufferWL(
**self.display,
buffer.id().as_ptr() as _,
buffer.id().as_ptr().unwrap().as_ptr(),
ffi::egl::WIDTH as i32,
&mut width,
)
Expand All @@ -1106,7 +1106,7 @@ impl EGLBufferReader {
wrap_egl_call_bool(|| unsafe {
ffi::egl::QueryWaylandBufferWL(
**self.display,
buffer.id().as_ptr() as _,
buffer.id().as_ptr().unwrap().as_ptr(),
ffi::egl::HEIGHT as i32,
&mut height,
)
Expand All @@ -1128,7 +1128,7 @@ impl EGLBufferReader {
unsafe {
ffi::egl::QueryWaylandBufferWL(
**self.display,
buffer.id().as_ptr() as _,
buffer.id().as_ptr().unwrap().as_ptr(),
ffi::egl::WAYLAND_Y_INVERTED_WL,
&mut inverted,
)
Expand All @@ -1152,7 +1152,7 @@ impl EGLBufferReader {
**self.display,
ffi::egl::NO_CONTEXT,
ffi::egl::WAYLAND_BUFFER_WL,
buffer.id().as_ptr() as *mut _,
buffer.id().as_ptr().unwrap().as_ptr(),
out.as_ptr(),
)
})
Expand Down Expand Up @@ -1188,7 +1188,7 @@ impl EGLBufferReader {
if unsafe {
ffi::egl::QueryWaylandBufferWL(
**self.display,
buffer.id().as_ptr() as _,
buffer.id().as_ptr().unwrap().as_ptr(),
ffi::egl::WIDTH as _,
&mut width,
) == 0
Expand All @@ -1200,7 +1200,7 @@ impl EGLBufferReader {
if unsafe {
ffi::egl::QueryWaylandBufferWL(
**self.display,
buffer.id().as_ptr() as _,
buffer.id().as_ptr().unwrap().as_ptr(),
ffi::egl::HEIGHT as _,
&mut height,
) == 0
Expand Down
2 changes: 1 addition & 1 deletion src/backend/egl/native.rs
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ unsafe impl EGLNativeSurface for wegl::WlEglSurface {
ffi::egl::CreatePlatformWindowSurfaceEXT(
display.handle,
config_id,
self.ptr() as *mut _,
self.ptr().as_ptr(),
WINIT_SURFACE_ATTRIBUTES.as_ptr(),
)
})
Expand Down
3 changes: 2 additions & 1 deletion src/backend/winit/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ where
let size = window.surface_size();
let surface = unsafe {
wegl::WlEglSurface::new_from_raw(
handle.surface.as_ptr() as *mut _,
std::ptr::NonNull::new(handle.surface.as_ptr() as *mut _).unwrap(),
size.width as i32,
size.height as i32,
)
Expand Down Expand Up @@ -663,6 +663,7 @@ impl<F: FnMut(WinitEvent)> ApplicationHandler for WinitEventLoopApp<'_, F> {
| WindowEvent::TouchpadPressure { .. }
| WindowEvent::RotationGesture { .. }
| WindowEvent::PanGesture { .. }
| WindowEvent::HoldGesture { .. }
| WindowEvent::ActivationTokenDone { .. } => (),
}
}
Expand Down
14 changes: 7 additions & 7 deletions src/wayland/alpha_modifier/dispatch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ use wayland_protocols::wp::alpha_modifier::v1::server::{
wp_alpha_modifier_v1::{self, WpAlphaModifierV1},
};

use wayland_server::{Client, DataInit, Dispatch, DisplayHandle, New, Resource, backend::ClientId};
use wayland_server::{
Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource, backend::ClientId,
};

use super::{AlphaModifierSurfaceCachedState, AlphaModifierSurfaceData, AlphaModifierSurfaceUserData};
use crate::wayland::{Dispatch2, GlobalData, GlobalDispatch2, compositor};
use crate::wayland::{GlobalData, compositor};

impl<D> GlobalDispatch2<WpAlphaModifierV1, D> for GlobalData
impl<D> GlobalDispatch<WpAlphaModifierV1, D> for GlobalData
where
D: Dispatch<WpAlphaModifierV1, GlobalData>,
D: 'static,
{
fn bind(
Expand All @@ -25,9 +26,8 @@ where
}
}

impl<D> Dispatch2<WpAlphaModifierV1, D> for GlobalData
impl<D> Dispatch<WpAlphaModifierV1, D> for GlobalData
where
D: Dispatch<WpAlphaModifierSurfaceV1, AlphaModifierSurfaceUserData>,
D: 'static,
{
fn request(
Expand Down Expand Up @@ -72,7 +72,7 @@ where
}
}

impl<D> Dispatch2<WpAlphaModifierSurfaceV1, D> for AlphaModifierSurfaceUserData {
impl<D> Dispatch<WpAlphaModifierSurfaceV1, D> for AlphaModifierSurfaceUserData {
fn request(
&self,
_state: &mut D,
Expand Down
14 changes: 3 additions & 11 deletions src/wayland/alpha_modifier/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,8 @@ use std::sync::{
atomic::{self, AtomicBool},
};

use wayland_protocols::wp::alpha_modifier::v1::server::{
wp_alpha_modifier_surface_v1::WpAlphaModifierSurfaceV1, wp_alpha_modifier_v1::WpAlphaModifierV1,
};
use wayland_server::{
Dispatch, DisplayHandle, GlobalDispatch, Resource, Weak, backend::GlobalId,
protocol::wl_surface::WlSurface,
};
use wayland_protocols::wp::alpha_modifier::v1::server::wp_alpha_modifier_v1::WpAlphaModifierV1;
use wayland_server::{DisplayHandle, Resource, Weak, backend::GlobalId, protocol::wl_surface::WlSurface};

use super::compositor::Cacheable;

Expand Down Expand Up @@ -161,10 +156,7 @@ impl AlphaModifierState {
/// Regiseter new [WpAlphaModifierV1] global
pub fn new<D>(display: &DisplayHandle) -> AlphaModifierState
where
D: GlobalDispatch<WpAlphaModifierV1, GlobalData>
+ Dispatch<WpAlphaModifierV1, GlobalData>
+ Dispatch<WpAlphaModifierSurfaceV1, AlphaModifierSurfaceUserData>
+ 'static,
D: 'static,
{
let global = display.create_global::<D, WpAlphaModifierV1, _>(1, GlobalData);

Expand Down
16 changes: 5 additions & 11 deletions src/wayland/background_effect/dispatch.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::wayland::background_effect::{BackgroundEffectSurfaceData, ExtBackgroundEffectHandler};
use crate::wayland::compositor;
use crate::wayland::{
Dispatch2, GlobalData, GlobalDispatch2,
GlobalData,
background_effect::{BackgroundEffectSurfaceCachedState, BackgroundEffectSurfaceUserData},
compositor::with_states,
};
Expand All @@ -13,12 +13,9 @@ use wayland_protocols::ext::background_effect::v1::server::{
Error as SurfaceError, ExtBackgroundEffectSurfaceV1, Request as SurfaceRequest,
},
};
use wayland_server::{Client, DataInit, Dispatch, DisplayHandle, New, Resource};
use wayland_server::{Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource};

impl<D: ExtBackgroundEffectHandler> GlobalDispatch2<ExtBackgroundEffectManagerV1, D> for GlobalData
where
D: Dispatch<ExtBackgroundEffectManagerV1, GlobalData>,
{
impl<D: ExtBackgroundEffectHandler> GlobalDispatch<ExtBackgroundEffectManagerV1, D> for GlobalData {
fn bind(
&self,
state: &mut D,
Expand All @@ -32,10 +29,7 @@ where
}
}

impl<D: ExtBackgroundEffectHandler> Dispatch2<ExtBackgroundEffectManagerV1, D> for GlobalData
where
D: Dispatch<ExtBackgroundEffectSurfaceV1, BackgroundEffectSurfaceUserData>,
{
impl<D: ExtBackgroundEffectHandler> Dispatch<ExtBackgroundEffectManagerV1, D> for GlobalData {
fn request(
&self,
_state: &mut D,
Expand Down Expand Up @@ -73,7 +67,7 @@ where
}
}

impl<D: ExtBackgroundEffectHandler> Dispatch2<ExtBackgroundEffectSurfaceV1, D>
impl<D: ExtBackgroundEffectHandler> Dispatch<ExtBackgroundEffectSurfaceV1, D>
for BackgroundEffectSurfaceUserData
{
fn request(
Expand Down
6 changes: 2 additions & 4 deletions src/wayland/background_effect/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ use crate::wayland::{
use wayland_protocols::ext::background_effect::v1::server::ext_background_effect_manager_v1::{
self, ExtBackgroundEffectManagerV1,
};
use wayland_server::{
DisplayHandle, GlobalDispatch, Resource, Weak, backend::GlobalId, protocol::wl_surface::WlSurface,
};
use wayland_server::{DisplayHandle, Resource, Weak, backend::GlobalId, protocol::wl_surface::WlSurface};

pub use ext_background_effect_manager_v1::Capability;

Expand Down Expand Up @@ -144,7 +142,7 @@ impl BackgroundEffectState {
/// Regiseter new [ExtBackgroundEffectManagerV1] global
pub fn new<D>(display: &DisplayHandle) -> BackgroundEffectState
where
D: ExtBackgroundEffectHandler + GlobalDispatch<ExtBackgroundEffectManagerV1, GlobalData>,
D: ExtBackgroundEffectHandler,
{
let global = display.create_global::<D, ExtBackgroundEffectManagerV1, _>(1, GlobalData);
BackgroundEffectState { global }
Expand Down
16 changes: 4 additions & 12 deletions src/wayland/commit_timing/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,7 @@ use wayland_server::{

use crate::{
utils::Time,
wayland::{
Dispatch2, GlobalDispatch2,
compositor::{add_blocker, add_pre_commit_hook},
},
wayland::compositor::{add_blocker, add_pre_commit_hook},
};

use super::compositor::{Barrier, with_states};
Expand All @@ -114,7 +111,6 @@ impl CommitTimingManagerState {
/// remove or disable this global in the future.
pub fn new<D>(display: &DisplayHandle) -> Self
where
D: GlobalDispatch<WpCommitTimingManagerV1, CommitTimingManagerData>,
D: 'static,
{
Self::new_internal::<D>(display, true)
Expand All @@ -126,15 +122,13 @@ impl CommitTimingManagerState {
/// remove or disable this global in the future.
pub fn unmanaged<D>(display: &DisplayHandle) -> Self
where
D: GlobalDispatch<WpCommitTimingManagerV1, CommitTimingManagerData>,
D: 'static,
{
Self::new_internal::<D>(display, false)
}

fn new_internal<D>(display: &DisplayHandle, is_managed: bool) -> Self
where
D: GlobalDispatch<WpCommitTimingManagerV1, CommitTimingManagerData>,
D: 'static,
{
let global =
Expand All @@ -160,9 +154,8 @@ pub struct CommitTimingManagerData {
is_managed: bool,
}

impl<D> GlobalDispatch2<WpCommitTimingManagerV1, D> for CommitTimingManagerData
impl<D> GlobalDispatch<WpCommitTimingManagerV1, D> for CommitTimingManagerData
where
D: Dispatch<WpCommitTimingManagerV1, CommitTimingManagerData>,
D: 'static,
{
fn bind(
Expand All @@ -177,9 +170,8 @@ where
}
}

impl<D> Dispatch2<WpCommitTimingManagerV1, D> for CommitTimingManagerData
impl<D> Dispatch<WpCommitTimingManagerV1, D> for CommitTimingManagerData
where
D: Dispatch<WpCommitTimerV1, CommitTimerData>,
D: 'static,
{
fn request(
Expand Down Expand Up @@ -257,7 +249,7 @@ struct CommitTimerMarker(Option<WpCommitTimerV1>);
#[derive(Debug)]
pub struct CommitTimerData(Weak<WlSurface>);

impl<D> Dispatch2<WpCommitTimerV1, D> for CommitTimerData
impl<D> Dispatch<WpCommitTimerV1, D> for CommitTimerData
where
D: 'static,
{
Expand Down
Loading
Loading