chore(wayland): update waynest
Signed-off-by: Schmarni <marnistromer@gmail.com>
This commit is contained in:
@@ -10,7 +10,7 @@ use mint::Vector2;
|
||||
use std::sync::Arc;
|
||||
use waynest::ObjectId;
|
||||
pub use waynest_protocols::server::core::wayland::wl_buffer::*;
|
||||
use waynest_server::RequestDispatcher;
|
||||
use waynest_server::{Client as _, RequestDispatcher};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct BufferUsage {
|
||||
@@ -40,7 +40,7 @@ pub enum BufferBacking {
|
||||
}
|
||||
|
||||
#[derive(Debug, RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Buffer {
|
||||
pub id: ObjectId,
|
||||
backing: BufferBacking,
|
||||
@@ -48,8 +48,12 @@ pub struct Buffer {
|
||||
|
||||
impl Buffer {
|
||||
#[tracing::instrument(level = "debug", skip_all)]
|
||||
pub fn new(client: &mut Client, id: ObjectId, backing: BufferBacking) -> Arc<Self> {
|
||||
client.insert(id, Self { id, backing })
|
||||
pub fn new(
|
||||
client: &mut Client,
|
||||
id: ObjectId,
|
||||
backing: BufferBacking,
|
||||
) -> WaylandResult<Arc<Self>> {
|
||||
Ok(client.insert(id, Self { id, backing })?)
|
||||
}
|
||||
|
||||
/// Returns the tex if it was updated
|
||||
|
||||
@@ -3,7 +3,7 @@ pub use waynest_protocols::server::core::wayland::wl_callback::*;
|
||||
use waynest_server::RequestDispatcher;
|
||||
|
||||
#[derive(Debug, RequestDispatcher, Clone)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Callback(pub ObjectId);
|
||||
/// https://wayland.app/protocols/wayland#wl_callback
|
||||
impl WlCallback for Callback {
|
||||
|
||||
@@ -4,10 +4,10 @@ use crate::wayland::{core::surface::Surface, util::ClientExt};
|
||||
use waynest::ObjectId;
|
||||
use waynest_protocols::server::core::wayland::wl_surface::WlSurface;
|
||||
pub use waynest_protocols::server::core::wayland::{wl_compositor::*, wl_region::*};
|
||||
use waynest_server::RequestDispatcher;
|
||||
use waynest_server::{Client as _, RequestDispatcher};
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher, Default)]
|
||||
#[waynest(error = WaylandError)]
|
||||
#[waynest(error = WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Compositor;
|
||||
impl WlCompositor for Compositor {
|
||||
type Connection = crate::wayland::Client;
|
||||
@@ -19,7 +19,7 @@ impl WlCompositor for Compositor {
|
||||
_sender_id: ObjectId,
|
||||
id: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
let surface = client.insert(id, Surface::new(client, id));
|
||||
let surface = client.insert(id, Surface::new(client, id))?;
|
||||
if let Some(output) = client.display().output.get() {
|
||||
surface.enter(client, id, output.id).await?;
|
||||
}
|
||||
@@ -35,13 +35,13 @@ impl WlCompositor for Compositor {
|
||||
_sender_id: ObjectId,
|
||||
id: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
client.insert(id, Region { id });
|
||||
client.insert(id, Region { id })?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, RequestDispatcher)]
|
||||
#[waynest(error = WaylandError)]
|
||||
#[waynest(error = WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Region {
|
||||
id: ObjectId,
|
||||
}
|
||||
|
||||
@@ -4,11 +4,12 @@ use waynest::ObjectId;
|
||||
use waynest_protocols::server::core::wayland::{
|
||||
wl_data_device::*, wl_data_device_manager::*, wl_data_offer::WlDataOffer, wl_data_source::*,
|
||||
};
|
||||
use waynest_server::Client as _;
|
||||
|
||||
// TODO: actually implement this
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct DataDeviceManager;
|
||||
impl WlDataDeviceManager for DataDeviceManager {
|
||||
type Connection = Client;
|
||||
@@ -19,7 +20,7 @@ impl WlDataDeviceManager for DataDeviceManager {
|
||||
_sender_id: ObjectId,
|
||||
id: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
client.insert(id, DataSource { id });
|
||||
client.insert(id, DataSource { id })?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -30,29 +31,19 @@ impl WlDataDeviceManager for DataDeviceManager {
|
||||
id: ObjectId,
|
||||
_seat: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
client.insert(id, DataDevice);
|
||||
client.insert(id, DataDevice)?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct DataSource {
|
||||
id: ObjectId,
|
||||
}
|
||||
impl WlDataSource for DataSource {
|
||||
type Connection = Client;
|
||||
|
||||
async fn send(
|
||||
&self,
|
||||
_client: &mut Self::Connection,
|
||||
_sender_id: ObjectId,
|
||||
_mime_type: String,
|
||||
_fd: OwnedFd,
|
||||
) -> WaylandResult<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn offer(
|
||||
&self,
|
||||
_client: &mut Self::Connection,
|
||||
@@ -82,7 +73,7 @@ impl WlDataSource for DataSource {
|
||||
}
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct DataDevice;
|
||||
impl WlDataDevice for DataDevice {
|
||||
type Connection = Client;
|
||||
@@ -119,7 +110,7 @@ impl WlDataDevice for DataDevice {
|
||||
}
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct DataOffer {
|
||||
id: ObjectId,
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ use std::{
|
||||
collections::HashSet,
|
||||
io::Write,
|
||||
os::{
|
||||
fd::IntoRawFd,
|
||||
fd::{AsFd, IntoRawFd},
|
||||
unix::io::{FromRawFd, OwnedFd},
|
||||
},
|
||||
sync::{Arc, Weak},
|
||||
@@ -68,7 +68,7 @@ impl ModifierState {
|
||||
}
|
||||
|
||||
#[derive(waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Keyboard {
|
||||
pub id: ObjectId,
|
||||
focused_surface: Mutex<Weak<Surface>>,
|
||||
@@ -103,7 +103,7 @@ impl Keyboard {
|
||||
client,
|
||||
self.id,
|
||||
KeymapFormat::XkbV1,
|
||||
fd,
|
||||
fd.as_fd(),
|
||||
keymap.len() as u32,
|
||||
)
|
||||
.await?;
|
||||
|
||||
@@ -3,7 +3,7 @@ use waynest::ObjectId;
|
||||
pub use waynest_protocols::server::core::wayland::wl_output::*;
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Output {
|
||||
pub id: ObjectId,
|
||||
pub version: u32,
|
||||
|
||||
@@ -3,6 +3,7 @@ use crate::nodes::items::panel::Geometry;
|
||||
use crate::wayland::core::surface::Surface;
|
||||
use crate::wayland::{Client, WaylandResult};
|
||||
use mint::Vector2;
|
||||
use waynest_server::Client as _;
|
||||
use std::sync::Arc;
|
||||
use std::sync::Weak;
|
||||
use tokio::sync::Mutex;
|
||||
@@ -12,7 +13,7 @@ use waynest::ObjectId;
|
||||
pub use waynest_protocols::server::core::wayland::wl_pointer::*;
|
||||
|
||||
#[derive(waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Pointer {
|
||||
pub id: ObjectId,
|
||||
version: u32,
|
||||
|
||||
@@ -2,6 +2,7 @@ use crate::wayland::Client;
|
||||
use crate::wayland::WaylandResult;
|
||||
use crate::wayland::core::{keyboard::Keyboard, pointer::Pointer, surface::Surface, touch::Touch};
|
||||
use mint::Vector2;
|
||||
use waynest_server::Client as _;
|
||||
use std::sync::Arc;
|
||||
use std::sync::OnceLock;
|
||||
use waynest::ObjectId;
|
||||
@@ -45,7 +46,7 @@ pub enum SeatMessage {
|
||||
}
|
||||
|
||||
#[derive(Default, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Seat {
|
||||
version: u32,
|
||||
pointer: OnceLock<Arc<Pointer>>,
|
||||
@@ -171,7 +172,7 @@ impl WlSeat for Seat {
|
||||
_sender_id: ObjectId,
|
||||
id: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
let pointer = client.insert(id, Pointer::new(id, self.version));
|
||||
let pointer = client.insert(id, Pointer::new(id, self.version))?;
|
||||
let _ = self.pointer.set(pointer);
|
||||
Ok(())
|
||||
}
|
||||
@@ -184,7 +185,7 @@ impl WlSeat for Seat {
|
||||
id: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
tracing::info!("Getting keyboard");
|
||||
let keyboard = client.insert(id, Keyboard::new(id));
|
||||
let keyboard = client.insert(id, Keyboard::new(id))?;
|
||||
let _ = self.keyboard.set(keyboard);
|
||||
Ok(())
|
||||
}
|
||||
@@ -196,7 +197,7 @@ impl WlSeat for Seat {
|
||||
_sender_id: ObjectId,
|
||||
id: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
let touch = client.insert(id, Touch(id));
|
||||
let touch = client.insert(id, Touch(id))?;
|
||||
let _ = self.touch.set(touch);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -2,9 +2,10 @@ use crate::wayland::{Client, WaylandResult, core::shm_pool::ShmPool};
|
||||
use std::os::fd::OwnedFd;
|
||||
use waynest::ObjectId;
|
||||
pub use waynest_protocols::server::core::wayland::wl_shm::*;
|
||||
use waynest_server::Client as _;
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher, Default)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Shm;
|
||||
impl Shm {
|
||||
pub async fn advertise_formats(
|
||||
@@ -30,7 +31,7 @@ impl WlShm for Shm {
|
||||
fd: OwnedFd,
|
||||
size: i32,
|
||||
) -> WaylandResult<()> {
|
||||
client.insert(pool_id, ShmPool::new(fd, size, pool_id)?);
|
||||
client.insert(pool_id, ShmPool::new(fd, size, pool_id)?)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -5,13 +5,14 @@ use crate::wayland::{
|
||||
};
|
||||
use memmap2::{MmapOptions, RemapOptions};
|
||||
use parking_lot::{Mutex, MutexGuard, RawMutex, lock_api::MappedMutexGuard};
|
||||
use waynest_server::Client as _;
|
||||
use std::os::fd::{IntoRawFd, OwnedFd};
|
||||
use waynest::ObjectId;
|
||||
use waynest_protocols::server::core::wayland::wl_shm::Format;
|
||||
pub use waynest_protocols::server::core::wayland::wl_shm_pool::*;
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct ShmPool {
|
||||
inner: Mutex<memmap2::MmapMut>,
|
||||
id: ObjectId,
|
||||
@@ -62,7 +63,7 @@ impl WlShmPool for ShmPool {
|
||||
format,
|
||||
);
|
||||
|
||||
Buffer::new(client, id, BufferBacking::Shm(params));
|
||||
Buffer::new(client, id, BufferBacking::Shm(params))?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ use bevy::{
|
||||
use bevy_dmabuf::import::ImportedDmatexs;
|
||||
use mint::Vector2;
|
||||
use parking_lot::Mutex;
|
||||
use waynest_server::Client as _;
|
||||
use std::{
|
||||
fmt::Display,
|
||||
sync::{Arc, OnceLock, Weak},
|
||||
@@ -90,7 +91,7 @@ impl SurfaceState {
|
||||
// if returning false, don't run this callback again... just remove it
|
||||
pub type OnCommitCallback = Box<dyn FnMut(&Surface, &SurfaceState) -> bool + Send + Sync>;
|
||||
#[derive(waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Surface {
|
||||
pub id: ObjectId,
|
||||
pub surface_id: OnceLock<SurfaceId>,
|
||||
@@ -376,7 +377,7 @@ impl WlSurface for Surface {
|
||||
_sender_id: ObjectId,
|
||||
callback_id: ObjectId,
|
||||
) -> WaylandResult<()> {
|
||||
let callback = client.insert(callback_id, Callback(callback_id));
|
||||
let callback = client.insert(callback_id, Callback(callback_id))?;
|
||||
self.state.lock().pending.frame_callbacks.push(callback);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use waynest::ObjectId;
|
||||
pub use waynest_protocols::server::core::wayland::wl_touch::*;
|
||||
|
||||
#[derive(Debug, waynest_server::RequestDispatcher)]
|
||||
#[waynest(error = crate::wayland::WaylandError)]
|
||||
#[waynest(error = crate::wayland::WaylandError, connection = crate::wayland::Client)]
|
||||
pub struct Touch(pub ObjectId);
|
||||
impl Touch {
|
||||
pub async fn handle_touch_down(
|
||||
|
||||
Reference in New Issue
Block a user