1
0
Fork 0
forked from wry/wry

wayland: remove Object::num_requests

This commit is contained in:
Julian Orth 2024-02-06 12:05:03 +01:00
parent 19bd17c7dc
commit 0ac1bb8507
76 changed files with 168 additions and 486 deletions

View file

@ -199,7 +199,7 @@ impl IpcVtable for ClipboardIpc {
}
fn create_xwm_source(client: &Rc<Client>) -> Self::Source {
WlDataSource::new(WlDataSourceId::NONE, client, true)
WlDataSource::new(WlDataSourceId::NONE, client, true, 3)
}
fn set_seat_selection(
@ -287,18 +287,14 @@ impl IpcVtable for ClipboardIpc {
}
object_base! {
WlDataDevice;
self = WlDataDevice;
START_DRAG => start_drag,
SET_SELECTION => set_selection,
RELEASE => release,
RELEASE => release if self.version >= 2,
}
impl Object for WlDataDevice {
fn num_requests(&self) -> u32 {
RELEASE + 1
}
fn break_loops(&self) {
break_device_loops::<ClipboardIpc>(self);
self.seat.remove_data_device(self);

View file

@ -61,7 +61,7 @@ impl WlDataDeviceManager {
parser: MsgParser<'_, '_>,
) -> Result<(), WlDataDeviceManagerError> {
let req: CreateDataSource = self.client.parse(self, parser)?;
let res = Rc::new(WlDataSource::new(req.id, &self.client, false));
let res = Rc::new(WlDataSource::new(req.id, &self.client, false, self.version));
track!(self.client, res);
self.client.add_client_obj(&res)?;
Ok(())
@ -106,17 +106,13 @@ impl Global for WlDataDeviceManagerGlobal {
simple_add_global!(WlDataDeviceManagerGlobal);
object_base! {
WlDataDeviceManager;
self = WlDataDeviceManager;
CREATE_DATA_SOURCE => create_data_source,
GET_DATA_DEVICE => get_data_device,
}
impl Object for WlDataDeviceManager {
fn num_requests(&self) -> u32 {
GET_DATA_DEVICE + 1
}
}
impl Object for WlDataDeviceManager {}
simple_add_obj!(WlDataDeviceManager);

View file

@ -168,20 +168,16 @@ impl WlDataOffer {
}
object_base! {
WlDataOffer;
self = WlDataOffer;
ACCEPT => accept,
RECEIVE => receive,
DESTROY => destroy,
FINISH => finish,
SET_ACTIONS => set_actions,
FINISH => finish if self.device.version >= 3,
SET_ACTIONS => set_actions if self.device.version >= 3,
}
impl Object for WlDataOffer {
fn num_requests(&self) -> u32 {
SET_ACTIONS + 1
}
fn break_loops(&self) {
break_offer_loops::<ClipboardIpc>(self);
}

View file

@ -30,15 +30,17 @@ const INVALID_SOURCE: u32 = 1;
pub struct WlDataSource {
pub id: WlDataSourceId,
pub data: SourceData<ClipboardIpc>,
pub version: u32,
pub tracker: Tracker<Self>,
}
impl WlDataSource {
pub fn new(id: WlDataSourceId, client: &Rc<Client>, is_xwm: bool) -> Self {
pub fn new(id: WlDataSourceId, client: &Rc<Client>, is_xwm: bool, version: u32) -> Self {
Self {
id,
tracker: Default::default(),
data: SourceData::new(client, is_xwm),
version,
}
}
@ -196,18 +198,14 @@ impl WlDataSource {
}
object_base! {
WlDataSource;
self = WlDataSource;
OFFER => offer,
DESTROY => destroy,
SET_ACTIONS => set_actions,
SET_ACTIONS => set_actions if self.version >= 3,
}
impl Object for WlDataSource {
fn num_requests(&self) -> u32 {
SET_ACTIONS + 1
}
fn break_loops(&self) {
break_source_loops::<ClipboardIpc>(self);
}

View file

@ -113,18 +113,14 @@ impl Global for ZwpPrimarySelectionDeviceManagerV1Global {
simple_add_global!(ZwpPrimarySelectionDeviceManagerV1Global);
object_base! {
ZwpPrimarySelectionDeviceManagerV1;
self = ZwpPrimarySelectionDeviceManagerV1;
CREATE_SOURCE => create_source,
GET_DEVICE => get_data_device,
DESTROY => destroy,
}
impl Object for ZwpPrimarySelectionDeviceManagerV1 {
fn num_requests(&self) -> u32 {
DESTROY + 1
}
}
impl Object for ZwpPrimarySelectionDeviceManagerV1 {}
simple_add_obj!(ZwpPrimarySelectionDeviceManagerV1);

View file

@ -231,17 +231,13 @@ impl IpcVtable for PrimarySelectionIpc {
}
object_base! {
ZwpPrimarySelectionDeviceV1;
self = ZwpPrimarySelectionDeviceV1;
SET_SELECTION => set_selection,
DESTROY => destroy,
}
impl Object for ZwpPrimarySelectionDeviceV1 {
fn num_requests(&self) -> u32 {
DESTROY + 1
}
fn break_loops(&self) {
break_device_loops::<PrimarySelectionIpc>(self);
self.seat.remove_primary_selection_device(self);

View file

@ -63,17 +63,13 @@ impl ZwpPrimarySelectionOfferV1 {
}
object_base! {
ZwpPrimarySelectionOfferV1;
self = ZwpPrimarySelectionOfferV1;
RECEIVE => receive,
DESTROY => destroy,
}
impl Object for ZwpPrimarySelectionOfferV1 {
fn num_requests(&self) -> u32 {
DESTROY + 1
}
fn break_loops(&self) {
break_offer_loops::<PrimarySelectionIpc>(self);
}

View file

@ -80,17 +80,13 @@ impl ZwpPrimarySelectionSourceV1 {
}
object_base! {
ZwpPrimarySelectionSourceV1;
self = ZwpPrimarySelectionSourceV1;
OFFER => offer,
DESTROY => destroy,
}
impl Object for ZwpPrimarySelectionSourceV1 {
fn num_requests(&self) -> u32 {
DESTROY + 1
}
fn break_loops(&self) {
break_source_loops::<PrimarySelectionIpc>(self);
}