autocommit 2022-02-06 23:54:46 CET
This commit is contained in:
parent
96038f49bc
commit
7d531257ed
51 changed files with 290 additions and 276 deletions
|
|
@ -1,10 +1,10 @@
|
|||
use crate::client::ClientId;
|
||||
use crate::object::{Interface, ObjectId};
|
||||
use crate::utils::buffd::{BufFdError, MsgParserError};
|
||||
use crate::wire::WlDisplayId;
|
||||
use crate::AsyncError;
|
||||
use std::error::Error;
|
||||
use thiserror::Error;
|
||||
use crate::wire::WlDisplayId;
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
pub enum ClientError {
|
||||
|
|
|
|||
|
|
@ -3,13 +3,15 @@ use crate::client::error::LookupError;
|
|||
use crate::client::objects::Objects;
|
||||
use crate::ifs::wl_callback::WlCallback;
|
||||
use crate::ifs::wl_display::WlDisplay;
|
||||
use crate::ifs::wl_registry::{WlRegistry};
|
||||
use crate::ifs::wl_registry::WlRegistry;
|
||||
use crate::object::{Interface, Object, ObjectId, WL_DISPLAY_ID};
|
||||
use crate::state::State;
|
||||
use crate::utils::asyncevent::AsyncEvent;
|
||||
use crate::utils::buffd::{MsgFormatter, MsgParser, MsgParserError, OutBufferSwapchain};
|
||||
use crate::utils::numcell::NumCell;
|
||||
use crate::utils::oneshot::{oneshot, OneshotTx};
|
||||
use crate::utils::queue::AsyncQueue;
|
||||
use crate::wire::WlRegistryId;
|
||||
use crate::ErrorFmt;
|
||||
use ahash::AHashMap;
|
||||
pub use error::{ClientError, ObjectError};
|
||||
|
|
@ -19,8 +21,6 @@ use std::fmt::{Debug, Display, Formatter};
|
|||
use std::mem;
|
||||
use std::rc::Rc;
|
||||
use uapi::{c, OwnedFd};
|
||||
use crate::utils::asyncevent::AsyncEvent;
|
||||
use crate::wire::WlRegistryId;
|
||||
|
||||
mod error;
|
||||
mod objects;
|
||||
|
|
@ -199,7 +199,7 @@ impl Client {
|
|||
Ok(d) => {
|
||||
d.send_invalid_request(obj, request);
|
||||
self.state.clients.shutdown(self.id);
|
||||
},
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!(
|
||||
"Could not retrieve display of client {}: {}",
|
||||
|
|
@ -246,7 +246,7 @@ impl Client {
|
|||
Ok(d) => {
|
||||
d.send_implementation_error(msg);
|
||||
self.state.clients.shutdown(self.id);
|
||||
},
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!(
|
||||
"Could not retrieve display of client {}: {}",
|
||||
|
|
|
|||
|
|
@ -1,27 +1,28 @@
|
|||
use crate::client::{Client, ClientError};
|
||||
use crate::ifs::wl_buffer::{WlBuffer};
|
||||
use crate::ifs::wl_data_source::{WlDataSource};
|
||||
use crate::ifs::wl_buffer::WlBuffer;
|
||||
use crate::ifs::wl_data_source::WlDataSource;
|
||||
use crate::ifs::wl_display::WlDisplay;
|
||||
use crate::ifs::wl_region::{WlRegion};
|
||||
use crate::ifs::wl_registry::{WlRegistry};
|
||||
use crate::ifs::wl_seat::{WlSeat};
|
||||
use crate::ifs::wl_surface::xdg_surface::xdg_toplevel::{XdgToplevel};
|
||||
use crate::ifs::wl_surface::xdg_surface::{XdgSurface};
|
||||
use crate::ifs::wl_surface::{WlSurface};
|
||||
use crate::ifs::xdg_positioner::{XdgPositioner};
|
||||
use crate::ifs::xdg_wm_base::{XdgWmBase};
|
||||
use crate::ifs::zwp_primary_selection_source_v1::{
|
||||
ZwpPrimarySelectionSourceV1,
|
||||
};
|
||||
use crate::ifs::wl_region::WlRegion;
|
||||
use crate::ifs::wl_registry::WlRegistry;
|
||||
use crate::ifs::wl_seat::WlSeat;
|
||||
use crate::ifs::wl_surface::xdg_surface::xdg_toplevel::XdgToplevel;
|
||||
use crate::ifs::wl_surface::xdg_surface::XdgSurface;
|
||||
use crate::ifs::wl_surface::WlSurface;
|
||||
use crate::ifs::xdg_positioner::XdgPositioner;
|
||||
use crate::ifs::xdg_wm_base::XdgWmBase;
|
||||
use crate::ifs::zwp_primary_selection_source_v1::ZwpPrimarySelectionSourceV1;
|
||||
use crate::object::{Object, ObjectId};
|
||||
use crate::tree::Node;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::utils::copyhashmap::CopyHashMap;
|
||||
use crate::wire::{
|
||||
WlBufferId, WlDataSourceId, WlRegionId, WlRegistryId, WlSeatId, WlSurfaceId, XdgPositionerId,
|
||||
XdgSurfaceId, XdgToplevelId, XdgWmBaseId, ZwpPrimarySelectionSourceV1Id,
|
||||
};
|
||||
use ahash::AHashMap;
|
||||
use std::cell::{RefCell, RefMut};
|
||||
use std::mem;
|
||||
use std::rc::Rc;
|
||||
use crate::wire::{WlBufferId, WlDataSourceId, WlRegionId, WlRegistryId, WlSeatId, WlSurfaceId, XdgPositionerId, XdgSurfaceId, XdgToplevelId, XdgWmBaseId, ZwpPrimarySelectionSourceV1Id};
|
||||
|
||||
pub struct Objects {
|
||||
pub display: CloneCell<Option<Rc<WlDisplay>>>,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
use std::collections::VecDeque;
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::object::ObjectId;
|
||||
use crate::utils::buffd::{BufFdIn, BufFdOut, MsgParser};
|
||||
|
|
@ -6,6 +5,7 @@ use crate::utils::oneshot::OneshotRx;
|
|||
use crate::utils::vec_ext::VecExt;
|
||||
use crate::ErrorFmt;
|
||||
use futures::{select, FutureExt};
|
||||
use std::collections::VecDeque;
|
||||
use std::mem;
|
||||
use std::rc::Rc;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use std::rc::Rc;
|
||||
use crate::format::Format;
|
||||
use std::rc::Rc;
|
||||
use uapi::OwnedFd;
|
||||
|
||||
pub struct DmaBufPlane {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use crate::client::{Client};
|
||||
use crate::client::Client;
|
||||
use crate::ifs::org_kde_kwin_server_decoration_manager::OrgKdeKwinServerDecorationManagerGlobal;
|
||||
use crate::ifs::wl_drm::WlDrmGlobal;
|
||||
use crate::ifs::wl_output::WlOutputGlobal;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
use crate::client::{Client, ClientError};
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::org_kde_kwin_server_decoration::*;
|
||||
use crate::wire::OrgKdeKwinServerDecorationId;
|
||||
use std::cell::Cell;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::org_kde_kwin_server_decoration::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::OrgKdeKwinServerDecorationId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const NONE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ use crate::globals::{Global, GlobalName};
|
|||
use crate::ifs::org_kde_kwin_server_decoration::OrgKdeKwinServerDecoration;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::org_kde_kwin_server_decoration_manager::*;
|
||||
use crate::wire::OrgKdeKwinServerDecorationManagerId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::org_kde_kwin_server_decoration_manager::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::OrgKdeKwinServerDecorationManagerId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const NONE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@ use crate::object::Object;
|
|||
use crate::rect::Rect;
|
||||
use crate::render::{Image, Texture};
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::wire::wl_buffer::*;
|
||||
use crate::wire::WlBufferId;
|
||||
use crate::{ClientMemError, RenderError};
|
||||
use std::cell::Cell;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_buffer::*;
|
||||
use crate::{ClientMemError, RenderError};
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlBufferId;
|
||||
|
||||
pub enum WlBufferStorage {
|
||||
Shm { mem: ClientMemOffset, stride: i32 },
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
use crate::client::{Client};
|
||||
use crate::client::Client;
|
||||
use crate::object::Object;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_callback::*;
|
||||
use crate::wire::WlCallbackId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
|
||||
pub struct WlCallback {
|
||||
client: Rc<Client>,
|
||||
|
|
@ -12,11 +12,17 @@ pub struct WlCallback {
|
|||
|
||||
impl WlCallback {
|
||||
pub fn new(id: WlCallbackId, client: &Rc<Client>) -> Self {
|
||||
Self { client: client.clone(), id }
|
||||
Self {
|
||||
client: client.clone(),
|
||||
id,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn send_done(&self) {
|
||||
self.client.event(Done { self_id: self.id, callback_data: 0 });
|
||||
self.client.event(Done {
|
||||
self_id: self.id,
|
||||
callback_data: 0,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ use crate::ifs::wl_region::WlRegion;
|
|||
use crate::ifs::wl_surface::WlSurface;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_compositor::*;
|
||||
use crate::wire::WlCompositorId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_compositor::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlCompositorId;
|
||||
|
||||
pub struct WlCompositorGlobal {
|
||||
name: GlobalName,
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
use crate::client::{ClientError};
|
||||
use crate::client::ClientError;
|
||||
use crate::ifs::wl_data_device_manager::WlDataDeviceManager;
|
||||
use crate::ifs::wl_data_source::WlDataSourceError;
|
||||
use crate::ifs::wl_seat::WlSeat;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_data_device::*;
|
||||
use crate::wire::{WlDataDeviceId, WlDataOfferId};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::ifs::wl_data_source::WlDataSourceError;
|
||||
use crate::wire::wl_data_device::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::{WlDataDeviceId, WlDataOfferId};
|
||||
|
||||
#[allow(dead_code)]
|
||||
const ROLE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::globals::{Global, GlobalName};
|
||||
use crate::ifs::wl_data_device::WlDataDevice;
|
||||
use crate::ifs::wl_data_source::WlDataSource;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_data_device_manager::*;
|
||||
use crate::wire::WlDataDeviceManagerId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_data_device_manager::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlDataDeviceManagerId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const DND_NONE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
use std::mem;
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::ifs::wl_data_source::WlDataSource;
|
||||
use crate::ifs::wl_seat::WlSeatGlobal;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::wire::wl_data_offer::*;
|
||||
use crate::wire::WlDataOfferId;
|
||||
use std::mem;
|
||||
use std::ops::Deref;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_data_offer::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlDataOfferId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const INVALID_FINISH: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -1,18 +1,17 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::ifs::wl_data_offer::{DataOfferRole, WlDataOffer};
|
||||
use crate::ifs::wl_seat::WlSeatGlobal;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::{CloneCell, UnsafeCellCloneSafe};
|
||||
use crate::wire::wl_data_source::*;
|
||||
use crate::wire::WlDataSourceId;
|
||||
use ahash::AHashSet;
|
||||
use std::cell::RefCell;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use uapi::OwnedFd;
|
||||
use crate::wire::wl_data_source::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlDataSourceId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const INVALID_ACTION_MASK: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::globals::GlobalsError;
|
||||
use crate::ifs::wl_callback::WlCallback;
|
||||
use crate::ifs::wl_registry::WlRegistry;
|
||||
use crate::object::{Object, ObjectId, WL_DISPLAY_ID};
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_display::*;
|
||||
use crate::wire::WlDisplayId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::globals::GlobalsError;
|
||||
use crate::wire::wl_display::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlDisplayId;
|
||||
|
||||
const INVALID_OBJECT: u32 = 0;
|
||||
const INVALID_METHOD: u32 = 1;
|
||||
|
|
@ -43,19 +42,11 @@ impl WlDisplay {
|
|||
let gr: GetRegistry = self.client.parse(self, parser)?;
|
||||
let registry = Rc::new(WlRegistry::new(gr.registry, &self.client));
|
||||
self.client.add_client_obj(®istry)?;
|
||||
self.client
|
||||
.state
|
||||
.globals
|
||||
.notify_all(®istry);
|
||||
self.client.state.globals.notify_all(®istry);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn send_error<O: Into<ObjectId>>(
|
||||
&self,
|
||||
object_id: O,
|
||||
code: u32,
|
||||
message: &str,
|
||||
) {
|
||||
pub fn send_error<O: Into<ObjectId>>(&self, object_id: O, code: u32, message: &str) {
|
||||
self.client.event(Error {
|
||||
self_id: self.id,
|
||||
object_id: object_id.into(),
|
||||
|
|
|
|||
|
|
@ -2,14 +2,13 @@ use crate::client::{Client, ClientError};
|
|||
use crate::globals::{Global, GlobalName};
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_drm::*;
|
||||
use crate::wire::WlDrmId;
|
||||
use bstr::ByteSlice;
|
||||
use std::ffi::CString;
|
||||
use std::rc::Rc;
|
||||
use bstr::ByteSlice;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_drm::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlDrmId;
|
||||
|
||||
|
||||
const PRIME: u32 = 1;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
|
||||
use crate::backend::Output;
|
||||
use crate::client::{Client, ClientError, ClientId};
|
||||
use crate::globals::{Global, GlobalName};
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_output::*;
|
||||
use crate::wire::WlOutputId;
|
||||
use ahash::AHashMap;
|
||||
use std::cell::{Cell, RefCell};
|
||||
use std::collections::hash_map::Entry;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_output::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlOutputId;
|
||||
|
||||
const SP_UNKNOWN: i32 = 0;
|
||||
#[allow(dead_code)]
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::object::Object;
|
||||
use crate::pixman::Region;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_region::*;
|
||||
use crate::wire::WlRegionId;
|
||||
use std::cell::RefCell;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_region::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlRegionId;
|
||||
|
||||
pub struct WlRegion {
|
||||
id: WlRegionId,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
|
||||
use crate::client::{Client};
|
||||
use crate::client::Client;
|
||||
use crate::globals::{Global, GlobalName, GlobalsError};
|
||||
use crate::object::{Interface, Object};
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_registry::*;
|
||||
use crate::wire::WlRegistryId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_registry::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlRegistryId;
|
||||
|
||||
pub struct WlRegistry {
|
||||
id: WlRegistryId,
|
||||
|
|
@ -40,7 +39,11 @@ impl WlRegistry {
|
|||
|
||||
fn bind(&self, parser: MsgParser<'_, '_>) -> Result<(), BindError> {
|
||||
let bind: Bind = self.client.parse(self, parser)?;
|
||||
let global = self.client.state.globals.get(GlobalName::from_raw(bind.name))?;
|
||||
let global = self
|
||||
.client
|
||||
.state
|
||||
.globals
|
||||
.get(GlobalName::from_raw(bind.name))?;
|
||||
if global.interface().name() != bind.interface {
|
||||
return Err(BindError::InvalidInterface(InterfaceError {
|
||||
name: global.name(),
|
||||
|
|
@ -111,4 +114,3 @@ pub struct VersionError {
|
|||
pub version: u32,
|
||||
pub actual: u32,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,25 +8,31 @@ use crate::client::{Client, ClientError, ClientId};
|
|||
use crate::cursor::{Cursor, KnownCursor};
|
||||
use crate::fixed::Fixed;
|
||||
use crate::globals::{Global, GlobalName};
|
||||
use crate::ifs::wl_data_device::{WlDataDevice};
|
||||
use crate::ifs::wl_data_offer::{DataOfferRole};
|
||||
use crate::ifs::wl_data_device::WlDataDevice;
|
||||
use crate::ifs::wl_data_offer::DataOfferRole;
|
||||
use crate::ifs::wl_data_source::{WlDataSource, WlDataSourceError};
|
||||
use crate::ifs::wl_seat::wl_keyboard::{WlKeyboard, REPEAT_INFO_SINCE, WlKeyboardError};
|
||||
use crate::ifs::wl_seat::wl_pointer::{WlPointer};
|
||||
use crate::ifs::wl_seat::wl_keyboard::{WlKeyboard, WlKeyboardError, REPEAT_INFO_SINCE};
|
||||
use crate::ifs::wl_seat::wl_pointer::WlPointer;
|
||||
use crate::ifs::wl_seat::wl_touch::WlTouch;
|
||||
use crate::ifs::wl_surface::xdg_surface::xdg_toplevel::XdgToplevel;
|
||||
use crate::ifs::zwp_primary_selection_device_v1::{
|
||||
ZwpPrimarySelectionDeviceV1,
|
||||
use crate::ifs::zwp_primary_selection_device_v1::ZwpPrimarySelectionDeviceV1;
|
||||
use crate::ifs::zwp_primary_selection_source_v1::{
|
||||
ZwpPrimarySelectionSourceV1, ZwpPrimarySelectionSourceV1Error,
|
||||
};
|
||||
use crate::ifs::zwp_primary_selection_source_v1::{ZwpPrimarySelectionSourceV1, ZwpPrimarySelectionSourceV1Error};
|
||||
use crate::object::Object;
|
||||
use crate::tree::{FloatNode, FoundNode, Node};
|
||||
use crate::utils::asyncevent::AsyncEvent;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::utils::copyhashmap::CopyHashMap;
|
||||
use crate::utils::linkedlist::LinkedList;
|
||||
use crate::utils::smallmap::SmallMap;
|
||||
use crate::wire::wl_seat::*;
|
||||
use crate::wire::{
|
||||
WlDataDeviceId, WlDataOfferId, WlKeyboardId, WlPointerId, WlSeatId,
|
||||
ZwpPrimarySelectionDeviceV1Id, ZwpPrimarySelectionOfferV1Id,
|
||||
};
|
||||
use crate::xkbcommon::{XkbContext, XkbState};
|
||||
use crate::{NumCell, State};
|
||||
use ahash::{AHashMap, AHashSet};
|
||||
|
|
@ -38,9 +44,6 @@ use std::io::Write;
|
|||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use uapi::{c, OwnedFd};
|
||||
use crate::wire::wl_seat::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::{WlDataDeviceId, WlDataOfferId, WlKeyboardId, WlPointerId, WlSeatId, ZwpPrimarySelectionDeviceV1Id, ZwpPrimarySelectionOfferV1Id};
|
||||
|
||||
const POINTER: u32 = 1;
|
||||
const KEYBOARD: u32 = 2;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use crate::backend::{KeyState, OutputId, ScrollAxis, SeatEvent, SeatId};
|
||||
use crate::client::{ClientId};
|
||||
use crate::client::ClientId;
|
||||
use crate::fixed::Fixed;
|
||||
use crate::ifs::wl_data_device::WlDataDevice;
|
||||
use crate::ifs::wl_seat::wl_keyboard::WlKeyboard;
|
||||
|
|
@ -14,10 +14,10 @@ use crate::ifs::wl_surface::WlSurface;
|
|||
use crate::ifs::zwp_primary_selection_device_v1::ZwpPrimarySelectionDeviceV1;
|
||||
use crate::tree::{FloatNode, FoundNode, Node};
|
||||
use crate::utils::smallmap::SmallMap;
|
||||
use crate::wire::{WlDataOfferId, ZwpPrimarySelectionOfferV1Id};
|
||||
use crate::xkbcommon::{ModifierState, XKB_KEY_DOWN, XKB_KEY_UP};
|
||||
use std::ops::{Deref, DerefMut};
|
||||
use std::rc::Rc;
|
||||
use crate::wire::{WlDataOfferId, ZwpPrimarySelectionOfferV1Id};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct NodeSeatState {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
|
||||
use crate::client::{ClientError};
|
||||
use crate::client::ClientError;
|
||||
use crate::ifs::wl_seat::WlSeat;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_keyboard::*;
|
||||
use crate::wire::{WlKeyboardId, WlSurfaceId};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use uapi::{c, Errno, OwnedFd};
|
||||
use crate::wire::wl_keyboard::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::{WlKeyboardId, WlSurfaceId};
|
||||
|
||||
pub const REPEAT_INFO_SINCE: u32 = 4;
|
||||
|
||||
|
|
@ -71,12 +70,7 @@ impl WlKeyboard {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn send_enter(
|
||||
self: &Rc<Self>,
|
||||
serial: u32,
|
||||
surface: WlSurfaceId,
|
||||
keys: &[u32],
|
||||
) {
|
||||
pub fn send_enter(self: &Rc<Self>, serial: u32, surface: WlSurfaceId, keys: &[u32]) {
|
||||
self.seat.client.event(Enter {
|
||||
self_id: self.id,
|
||||
serial,
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
|
||||
use crate::client::{ClientError};
|
||||
use crate::client::ClientError;
|
||||
use crate::cursor::Cursor;
|
||||
use crate::fixed::Fixed;
|
||||
use crate::ifs::wl_seat::WlSeat;
|
||||
use crate::ifs::wl_surface::WlSurfaceError;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_pointer::*;
|
||||
use crate::wire::{WlPointerId, WlSurfaceId};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::ifs::wl_surface::WlSurfaceError;
|
||||
use crate::wire::wl_pointer::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::{WlPointerId, WlSurfaceId};
|
||||
|
||||
#[allow(dead_code)]
|
||||
const ROLE: u32 = 0;
|
||||
|
|
@ -45,13 +44,7 @@ impl WlPointer {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn send_enter(
|
||||
&self,
|
||||
serial: u32,
|
||||
surface: WlSurfaceId,
|
||||
x: Fixed,
|
||||
y: Fixed,
|
||||
) {
|
||||
pub fn send_enter(&self, serial: u32, surface: WlSurfaceId, x: Fixed, y: Fixed) {
|
||||
self.seat.client.event(Enter {
|
||||
self_id: self.id,
|
||||
serial,
|
||||
|
|
@ -78,13 +71,7 @@ impl WlPointer {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn send_button(
|
||||
&self,
|
||||
serial: u32,
|
||||
time: u32,
|
||||
button: u32,
|
||||
state: u32,
|
||||
) {
|
||||
pub fn send_button(&self, serial: u32, time: u32, button: u32, state: u32) {
|
||||
self.seat.client.event(Button {
|
||||
self_id: self.id,
|
||||
serial,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
|
||||
use crate::client::ClientError;
|
||||
use crate::ifs::wl_seat::WlSeat;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_touch::*;
|
||||
use crate::wire::WlTouchId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::client::ClientError;
|
||||
use crate::wire::wl_touch::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlTouchId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const DOWN: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::format::FORMATS;
|
||||
use crate::globals::{Global, GlobalName};
|
||||
use crate::ifs::wl_shm_pool::{WlShmPool, WlShmPoolError};
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_shm::*;
|
||||
use crate::wire::WlShmId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_shm::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlShmId;
|
||||
|
||||
pub struct WlShmGlobal {
|
||||
name: GlobalName,
|
||||
|
|
|
|||
|
|
@ -1,18 +1,17 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::clientmem::ClientMem;
|
||||
use crate::format::{formats, map_wayland_format_id};
|
||||
use crate::ifs::wl_buffer::{WlBuffer, WlBufferError};
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::wire::wl_shm_pool::*;
|
||||
use crate::wire::WlShmPoolId;
|
||||
use crate::ClientMemError;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use uapi::OwnedFd;
|
||||
use crate::ClientMemError;
|
||||
use crate::wire::wl_shm_pool::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlShmPoolId;
|
||||
|
||||
pub struct WlShmPool {
|
||||
id: WlShmPoolId,
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::globals::{Global, GlobalName};
|
||||
use crate::ifs::wl_surface::wl_subsurface::{WlSubsurface, WlSubsurfaceError};
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::wl_subcompositor::*;
|
||||
use crate::wire::WlSubcompositorId;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_subcompositor::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlSubcompositorId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const BAD_SURFACE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ use crate::utils::buffd::{MsgParser, MsgParserError};
|
|||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::utils::linkedlist::LinkedList;
|
||||
use crate::utils::smallmap::SmallMap;
|
||||
use crate::wire::wl_surface::*;
|
||||
use crate::wire::{WlOutputId, WlSurfaceId};
|
||||
use crate::xkbcommon::ModifierState;
|
||||
use crate::NumCell;
|
||||
use ahash::AHashMap;
|
||||
|
|
@ -28,8 +30,6 @@ use std::mem;
|
|||
use std::ops::{Deref, DerefMut};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::wl_surface::*;
|
||||
use crate::wire::{WlOutputId, WlSurfaceId};
|
||||
|
||||
#[allow(dead_code)]
|
||||
const INVALID_SCALE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
use crate::client::ClientError;
|
||||
use crate::ifs::wl_surface::{
|
||||
CommitAction, CommitContext, StackElement, SurfaceExt, SurfaceRole, WlSurface, WlSurfaceError,
|
||||
WlSurfaceId,
|
||||
|
|
@ -6,16 +6,15 @@ use crate::ifs::wl_surface::{
|
|||
use crate::object::Object;
|
||||
use crate::rect::Rect;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::linkedlist::LinkedNode;
|
||||
use crate::wire::wl_subsurface::*;
|
||||
use crate::wire::WlSubsurfaceId;
|
||||
use crate::NumCell;
|
||||
use std::cell::{Cell, RefCell};
|
||||
use std::ops::Deref;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::client::ClientError;
|
||||
use crate::wire::wl_subsurface::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::WlSubsurfaceId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const BAD_SURFACE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ pub mod xdg_popup;
|
|||
pub mod xdg_toplevel;
|
||||
|
||||
use crate::backend::SeatId;
|
||||
use crate::client::{ClientError};
|
||||
use crate::client::ClientError;
|
||||
use crate::ifs::wl_seat::{NodeSeatState, WlSeatGlobal};
|
||||
use crate::ifs::wl_surface::xdg_surface::xdg_popup::{XdgPopup, XdgPopupError};
|
||||
use crate::ifs::wl_surface::xdg_surface::xdg_toplevel::XdgToplevel;
|
||||
|
|
@ -14,16 +14,16 @@ use crate::object::Object;
|
|||
use crate::rect::Rect;
|
||||
use crate::tree::{FindTreeResult, FoundNode, Node, WorkspaceNode};
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::utils::copyhashmap::CopyHashMap;
|
||||
use crate::utils::smallmap::SmallMap;
|
||||
use crate::wire::xdg_surface::*;
|
||||
use crate::wire::{WlSurfaceId, XdgPopupId, XdgSurfaceId};
|
||||
use crate::NumCell;
|
||||
use std::cell::Cell;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::xdg_surface::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::{WlSurfaceId, XdgPopupId, XdgSurfaceId};
|
||||
|
||||
#[allow(dead_code)]
|
||||
const NOT_CONSTRUCTED: u32 = 1;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::cursor::KnownCursor;
|
||||
use crate::fixed::Fixed;
|
||||
|
|
@ -10,14 +9,14 @@ use crate::rect::Rect;
|
|||
use crate::render::Renderer;
|
||||
use crate::tree::{FindTreeResult, FoundNode, Node, NodeId, WorkspaceNode};
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::utils::linkedlist::LinkedNode;
|
||||
use crate::wire::xdg_popup::*;
|
||||
use crate::wire::XdgPopupId;
|
||||
use std::cell::{Cell, RefCell};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::xdg_popup::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::XdgPopupId;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const INVALID_GRAB: u32 = 1;
|
||||
|
|
@ -76,7 +75,10 @@ impl XdgPopup {
|
|||
}
|
||||
|
||||
fn send_popup_done(&self) {
|
||||
self.xdg.surface.client.event(PopupDone { self_id: self.id })
|
||||
self.xdg
|
||||
.surface
|
||||
.client
|
||||
.event(PopupDone { self_id: self.id })
|
||||
}
|
||||
|
||||
fn update_position(&self, parent: &XdgSurface) -> Result<(), XdgPopupError> {
|
||||
|
|
@ -206,12 +208,7 @@ impl XdgPopup {
|
|||
self.update_position(&parent)?;
|
||||
let rel = self.relative_position.get();
|
||||
self.send_repositioned(req.token);
|
||||
self.send_configure(
|
||||
rel.x1(),
|
||||
rel.y1(),
|
||||
rel.width(),
|
||||
rel.height(),
|
||||
);
|
||||
self.send_configure(rel.x1(), rel.y1(), rel.width(), rel.height());
|
||||
self.xdg.do_send_configure();
|
||||
}
|
||||
Ok(())
|
||||
|
|
@ -303,12 +300,7 @@ impl XdgSurfaceExt for XdgPopup {
|
|||
if let Some(parent) = self.parent.get() {
|
||||
self.update_position(&parent)?;
|
||||
let rel = self.relative_position.get();
|
||||
self.send_configure(
|
||||
rel.x1(),
|
||||
rel.y1(),
|
||||
rel.width(),
|
||||
rel.height(),
|
||||
);
|
||||
self.send_configure(rel.x1(), rel.y1(), rel.width(), rel.height());
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
use crate::backend::SeatId;
|
||||
use crate::bugs::Bugs;
|
||||
use crate::client::{Client, ClientError};
|
||||
|
|
@ -12,9 +11,12 @@ use crate::render::Renderer;
|
|||
use crate::tree::{ContainerNode, FindTreeResult};
|
||||
use crate::tree::{FloatNode, FoundNode, Node, NodeId, ToplevelNodeId, WorkspaceNode};
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::utils::linkedlist::LinkedNode;
|
||||
use crate::utils::smallmap::SmallMap;
|
||||
use crate::wire::xdg_toplevel::*;
|
||||
use crate::wire::XdgToplevelId;
|
||||
use crate::{bugs, NumCell};
|
||||
use ahash::{AHashMap, AHashSet};
|
||||
use num_derive::FromPrimitive;
|
||||
|
|
@ -22,9 +24,6 @@ use std::cell::{Cell, RefCell};
|
|||
use std::mem;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::xdg_toplevel::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::XdgToplevelId;
|
||||
|
||||
#[derive(Copy, Clone, Debug, FromPrimitive)]
|
||||
pub enum ResizeEdge {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::ifs::xdg_wm_base::XdgWmBase;
|
||||
use crate::object::Object;
|
||||
use crate::rect::Rect;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::xdg_positioner::*;
|
||||
use crate::wire::XdgPositionerId;
|
||||
use bitflags::bitflags;
|
||||
use std::cell::RefCell;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::xdg_positioner::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::XdgPositionerId;
|
||||
|
||||
const INVALID_INPUT: u32 = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::globals::{Global, GlobalName};
|
||||
use crate::ifs::wl_surface::xdg_surface::{XdgSurface, XdgSurfaceError};
|
||||
use crate::ifs::xdg_positioner::XdgPositioner;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::utils::copyhashmap::CopyHashMap;
|
||||
use crate::wire::xdg_wm_base::*;
|
||||
use crate::wire::{XdgSurfaceId, XdgWmBaseId};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::xdg_wm_base::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::{XdgSurfaceId, XdgWmBaseId};
|
||||
|
||||
#[allow(dead_code)]
|
||||
const ROLE: u32 = 0;
|
||||
|
|
|
|||
|
|
@ -1,19 +1,18 @@
|
|||
use crate::client::{ClientError};
|
||||
use crate::client::ClientError;
|
||||
use crate::drm::dma::{DmaBuf, DmaBufPlane};
|
||||
use crate::drm::INVALID_MODIFIER;
|
||||
use crate::ifs::wl_buffer::{WlBuffer};
|
||||
use crate::ifs::wl_buffer::WlBuffer;
|
||||
use crate::ifs::zwp_linux_dmabuf_v1::ZwpLinuxDmabufV1;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::zwp_linux_buffer_params_v1::*;
|
||||
use crate::wire::{WlBufferId, ZwpLinuxBufferParamsV1Id};
|
||||
use crate::{ErrorFmt, RenderError};
|
||||
use ahash::AHashMap;
|
||||
use std::cell::{Cell, RefCell};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::zwp_linux_buffer_params_v1::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::{WlBufferId, ZwpLinuxBufferParamsV1Id};
|
||||
|
||||
|
||||
#[allow(dead_code)]
|
||||
const Y_INVERT: u32 = 1;
|
||||
|
|
|
|||
|
|
@ -4,12 +4,11 @@ use crate::globals::{Global, GlobalName};
|
|||
use crate::ifs::zwp_linux_buffer_params_v1::ZwpLinuxBufferParamsV1;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::zwp_linux_dmabuf_v1::*;
|
||||
use crate::wire::ZwpLinuxDmabufV1Id;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::zwp_linux_dmabuf_v1::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::ZwpLinuxDmabufV1Id;
|
||||
|
||||
|
||||
pub struct ZwpLinuxDmabufV1Global {
|
||||
name: GlobalName,
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::globals::{Global, GlobalName};
|
||||
use crate::ifs::zwp_primary_selection_device_v1::ZwpPrimarySelectionDeviceV1;
|
||||
use crate::ifs::zwp_primary_selection_source_v1::ZwpPrimarySelectionSourceV1;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::zwp_primary_selection_device_manager_v1::*;
|
||||
use crate::wire::ZwpPrimarySelectionDeviceManagerV1Id;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::zwp_primary_selection_device_manager_v1::*;
|
||||
use crate::utils::buffd::MsgParserError;
|
||||
use crate::wire::ZwpPrimarySelectionDeviceManagerV1Id;
|
||||
|
||||
pub struct ZwpPrimarySelectionDeviceManagerV1Global {
|
||||
name: GlobalName,
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
|
||||
use crate::client::{ClientError};
|
||||
use crate::client::ClientError;
|
||||
use crate::ifs::wl_seat::WlSeat;
|
||||
use crate::ifs::zwp_primary_selection_device_manager_v1::ZwpPrimarySelectionDeviceManagerV1;
|
||||
use crate::ifs::zwp_primary_selection_source_v1::ZwpPrimarySelectionSourceV1Error;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::{MsgParser, MsgParserError};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::ifs::zwp_primary_selection_source_v1::ZwpPrimarySelectionSourceV1Error;
|
||||
use crate::wire::zwp_primary_selection_device_v1::*;
|
||||
use crate::wire::{ZwpPrimarySelectionDeviceV1Id, ZwpPrimarySelectionOfferV1Id};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
|
||||
pub struct ZwpPrimarySelectionDeviceV1 {
|
||||
pub id: ZwpPrimarySelectionDeviceV1Id,
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
use std::mem;
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::ifs::wl_seat::WlSeatGlobal;
|
||||
use crate::ifs::zwp_primary_selection_source_v1::ZwpPrimarySelectionSourceV1;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::{MsgParser, MsgParserError};
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::wire::zwp_primary_selection_offer_v1::*;
|
||||
use crate::wire::ZwpPrimarySelectionOfferV1Id;
|
||||
use std::mem;
|
||||
use std::ops::Deref;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::zwp_primary_selection_offer_v1::*;
|
||||
use crate::wire::ZwpPrimarySelectionOfferV1Id;
|
||||
|
||||
pub struct ZwpPrimarySelectionOfferV1 {
|
||||
pub id: ZwpPrimarySelectionOfferV1Id,
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::ifs::wl_seat::WlSeatGlobal;
|
||||
use crate::ifs::zwp_primary_selection_offer_v1::ZwpPrimarySelectionOfferV1;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::{MsgParser, MsgParserError};
|
||||
use crate::utils::clonecell::CloneCell;
|
||||
use crate::wire::zwp_primary_selection_source_v1::*;
|
||||
use crate::wire::ZwpPrimarySelectionSourceV1Id;
|
||||
use ahash::AHashSet;
|
||||
use std::cell::RefCell;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use uapi::OwnedFd;
|
||||
use crate::wire::zwp_primary_selection_source_v1::*;
|
||||
use crate::wire::ZwpPrimarySelectionSourceV1Id;
|
||||
|
||||
pub struct ZwpPrimarySelectionSourceV1 {
|
||||
pub id: ZwpPrimarySelectionSourceV1Id,
|
||||
|
|
|
|||
|
|
@ -3,11 +3,10 @@ use crate::globals::{Global, GlobalName};
|
|||
use crate::ifs::zxdg_toplevel_decoration_v1::ZxdgToplevelDecorationV1;
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::{MsgParser, MsgParserError};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::zxdg_decoration_manager_v1::*;
|
||||
use crate::wire::ZxdgDecorationManagerV1Id;
|
||||
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
|
||||
pub struct ZxdgDecorationManagerV1Global {
|
||||
name: GlobalName,
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
|
||||
use crate::client::{Client, ClientError};
|
||||
use crate::ifs::wl_surface::xdg_surface::xdg_toplevel::{Decoration, XdgToplevel};
|
||||
use crate::object::Object;
|
||||
use crate::utils::buffd::{MsgParser, MsgParserError};
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
use crate::wire::zxdg_toplevel_decoration_v1::*;
|
||||
use crate::wire::ZxdgToplevelDecorationV1Id;
|
||||
use std::rc::Rc;
|
||||
use thiserror::Error;
|
||||
|
||||
const CLIENT_SIDE: u32 = 1;
|
||||
const SERVER_SIDE: u32 = 2;
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ mod time;
|
|||
mod tree;
|
||||
mod utils;
|
||||
mod wheel;
|
||||
mod xkbcommon;
|
||||
mod wire;
|
||||
mod xkbcommon;
|
||||
|
||||
fn main() {
|
||||
env_logger::builder()
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
use crate::client::ClientError;
|
||||
use crate::utils::buffd::MsgParser;
|
||||
use crate::wire::WlDisplayId;
|
||||
use std::fmt::{Display, Formatter};
|
||||
use std::rc::Rc;
|
||||
use crate::wire::WlDisplayId;
|
||||
|
||||
pub const WL_DISPLAY_ID: WlDisplayId = WlDisplayId::from_raw(1);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
use crate::async_engine::{AsyncFd, Timeout};
|
||||
use crate::utils::buffd::{BufFdError, BUF_SIZE, CMSG_BUF_SIZE};
|
||||
use futures::future::Fuse;
|
||||
use futures::{select, FutureExt};
|
||||
use std::collections::VecDeque;
|
||||
use std::mem::MaybeUninit;
|
||||
use std::rc::Rc;
|
||||
use std::{mem, slice};
|
||||
use futures::future::Fuse;
|
||||
use uapi::{c, Errno, OwnedFd};
|
||||
|
||||
pub(super) const OUT_BUF_SIZE: usize = 2 * BUF_SIZE;
|
||||
|
|
@ -90,7 +90,11 @@ impl BufFdOut {
|
|||
}
|
||||
}
|
||||
|
||||
pub async fn flush(&mut self, buf: &mut OutBuffer, timeout: &mut Option<Fuse<Timeout>>) -> Result<(), BufFdError> {
|
||||
pub async fn flush(
|
||||
&mut self,
|
||||
buf: &mut OutBuffer,
|
||||
timeout: &mut Option<Fuse<Timeout>>,
|
||||
) -> Result<(), BufFdError> {
|
||||
while buf.read_pos < buf.write_pos {
|
||||
if self.flush_sync(buf)? {
|
||||
self.fd.writable().await?;
|
||||
|
|
|
|||
|
|
@ -73,7 +73,8 @@ impl<'a> MsgFormatter<'a> {
|
|||
f(&mut fmt);
|
||||
let len = self.buf.write_pos - pos - 4;
|
||||
let none = [MaybeUninit::new(0); 4];
|
||||
self.buf.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
self.buf
|
||||
.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
len as u32
|
||||
};
|
||||
unsafe {
|
||||
|
|
@ -86,7 +87,8 @@ impl<'a> MsgFormatter<'a> {
|
|||
self.uint(mem::size_of_val(t) as u32);
|
||||
self.buf.write(uapi::as_maybe_uninit_bytes(t));
|
||||
let none = [MaybeUninit::new(0); 4];
|
||||
self.buf.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
self.buf
|
||||
.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
self
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
use std::{mem, ptr};
|
||||
use std::rc::Rc;
|
||||
use crate::fixed::Fixed;
|
||||
use crate::globals::GlobalName;
|
||||
use crate::object::ObjectId;
|
||||
use crate::utils::buffd::BufFdIn;
|
||||
use bstr::{BStr, ByteSlice};
|
||||
use std::rc::Rc;
|
||||
use std::{mem, ptr};
|
||||
use thiserror::Error;
|
||||
use uapi::{OwnedFd, Pod};
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ impl<'a, 'b> MsgParser<'a, 'b> {
|
|||
if s.len() == 0 {
|
||||
return Err(MsgParserError::EmptyString);
|
||||
}
|
||||
Ok(s[..s.len()-1].as_bstr())
|
||||
Ok(s[..s.len() - 1].as_bstr())
|
||||
}
|
||||
|
||||
pub fn str(&mut self) -> Result<&'b str, MsgParserError> {
|
||||
|
|
@ -120,9 +120,7 @@ impl<'a, 'b> MsgParser<'a, 'b> {
|
|||
if array.len() > mem::size_of::<T>() {
|
||||
return Err(MsgParserError::BinaryArrayTooLarge);
|
||||
}
|
||||
unsafe {
|
||||
Ok(ptr::read_unaligned(array.as_ptr() as _))
|
||||
}
|
||||
unsafe { Ok(ptr::read_unaligned(array.as_ptr() as _)) }
|
||||
}
|
||||
|
||||
pub fn binary_array<T: Pod>(&mut self) -> Result<&'b [T], MsgParserError> {
|
||||
|
|
@ -137,7 +135,10 @@ impl<'a, 'b> MsgParser<'a, 'b> {
|
|||
return Err(MsgParserError::BinaryArraySize);
|
||||
}
|
||||
unsafe {
|
||||
Ok(std::slice::from_raw_parts(array.as_ptr() as _, array.len() / mem::size_of::<T>()))
|
||||
Ok(std::slice::from_raw_parts(
|
||||
array.as_ptr() as _,
|
||||
array.len() / mem::size_of::<T>(),
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue