protocol/workspace: Split ext/cosmic-v1 workspace data into two types

This commit is contained in:
Ian Douglas Scott 2025-03-11 12:19:55 -07:00 committed by Victoria Brekenfeld
parent c72002e15a
commit dea7f2f825
4 changed files with 74 additions and 53 deletions

View file

@ -8,9 +8,11 @@ use smithay::{
}, },
}; };
use std::sync::Mutex;
use super::{ use super::{
GroupCapabilities, Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler, GroupCapabilities, Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler,
WorkspaceData, WorkspaceGlobalData, WorkspaceGroup, WorkspaceGroupData, WorkspaceGroupHandle, WorkspaceGlobalData, WorkspaceGroup, WorkspaceGroupData, WorkspaceGroupHandle,
WorkspaceHandler, WorkspaceState, WorkspaceHandler, WorkspaceState,
}; };
@ -23,12 +25,23 @@ use cosmic_protocols::workspace::{
v2::server::zcosmic_workspace_handle_v2, v2::server::zcosmic_workspace_handle_v2,
}; };
#[derive(Default)]
pub struct CosmicWorkspaceV1DataInner {
name: String,
capabilities: Option<WorkspaceCapabilities>,
coordinates: Vec<u32>,
states: Option<ext_workspace_handle_v1::State>,
tiling: Option<zcosmic_workspace_handle_v2::TilingState>,
}
pub type CosmicWorkspaceV1Data = Mutex<CosmicWorkspaceV1DataInner>;
impl<D> GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData, D> for WorkspaceState<D> impl<D> GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData, D> for WorkspaceState<D>
where where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -60,7 +73,7 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -113,7 +126,7 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -169,12 +182,12 @@ where
} }
} }
impl<D> Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData, D> for WorkspaceState<D> impl<D> Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data, D> for WorkspaceState<D>
where where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -184,7 +197,7 @@ where
client: &Client, client: &Client,
obj: &ZcosmicWorkspaceHandleV1, obj: &ZcosmicWorkspaceHandleV1,
request: zcosmic_workspace_handle_v1::Request, request: zcosmic_workspace_handle_v1::Request,
_data: &WorkspaceData, _data: &CosmicWorkspaceV1Data,
_dh: &DisplayHandle, _dh: &DisplayHandle,
_data_init: &mut DataInit<'_, D>, _data_init: &mut DataInit<'_, D>,
) { ) {
@ -278,7 +291,7 @@ where
state: &mut D, state: &mut D,
_client: ClientId, _client: ClientId,
resource: &ZcosmicWorkspaceHandleV1, resource: &ZcosmicWorkspaceHandleV1,
_data: &WorkspaceData, _data: &CosmicWorkspaceV1Data,
) { ) {
for group in &mut state.workspace_state_mut().groups { for group in &mut state.workspace_state_mut().groups {
for workspace in &mut group.workspaces { for workspace in &mut group.workspaces {
@ -297,7 +310,7 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -391,7 +404,7 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -403,7 +416,7 @@ where
if let Ok(handle) = client.create_resource::<ZcosmicWorkspaceHandleV1, _, D>( if let Ok(handle) = client.create_resource::<ZcosmicWorkspaceHandleV1, _, D>(
dh, dh,
group.version(), group.version(),
WorkspaceData::default(), CosmicWorkspaceV1Data::default(),
) { ) {
group.workspace(&handle); group.workspace(&handle);
workspace.instances.push((mngr.downgrade(), handle)); workspace.instances.push((mngr.downgrade(), handle));
@ -417,7 +430,11 @@ where
} }
}; };
let mut handle_state = instance.data::<WorkspaceData>().unwrap().lock().unwrap(); let mut handle_state = instance
.data::<CosmicWorkspaceV1Data>()
.unwrap()
.lock()
.unwrap();
let mut changed = false; let mut changed = false;
if handle_state.name != workspace.name { if handle_state.name != workspace.name {

View file

@ -19,21 +19,21 @@ use super::{
}; };
#[derive(Default)] #[derive(Default)]
pub struct CosmicWorkspaceDataInner { pub struct CosmicWorkspaceV2DataInner {
capabilities: Option<WorkspaceCapabilities>, capabilities: Option<WorkspaceCapabilities>,
tiling: Option<zcosmic_workspace_handle_v2::TilingState>, tiling: Option<zcosmic_workspace_handle_v2::TilingState>,
} }
pub struct CosmicWorkspaceData { pub struct CosmicWorkspaceV2Data {
workspace: Weak<ExtWorkspaceHandleV1>, workspace: Weak<ExtWorkspaceHandleV1>,
inner: Mutex<CosmicWorkspaceDataInner>, inner: Mutex<CosmicWorkspaceV2DataInner>,
} }
impl<D> GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData, D> for WorkspaceState<D> impl<D> GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData, D> for WorkspaceState<D>
where where
D: GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -58,7 +58,7 @@ impl<D> Dispatch<ZcosmicWorkspaceManagerV2, (), D> for WorkspaceState<D>
where where
D: GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -79,9 +79,9 @@ where
} => { } => {
let cosmic_workspace = data_init.init( let cosmic_workspace = data_init.init(
cosmic_workspace, cosmic_workspace,
CosmicWorkspaceData { CosmicWorkspaceV2Data {
workspace: workspace.downgrade(), workspace: workspace.downgrade(),
inner: Mutex::new(CosmicWorkspaceDataInner::default()), inner: Mutex::new(CosmicWorkspaceV2DataInner::default()),
}, },
); );
if let Some(data) = workspace.data::<WorkspaceData>() { if let Some(data) = workspace.data::<WorkspaceData>() {
@ -115,11 +115,11 @@ where
} }
} }
impl<D> Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData, D> for WorkspaceState<D> impl<D> Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data, D> for WorkspaceState<D>
where where
D: GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -129,7 +129,7 @@ where
client: &Client, client: &Client,
_obj: &ZcosmicWorkspaceHandleV2, _obj: &ZcosmicWorkspaceHandleV2,
request: zcosmic_workspace_handle_v2::Request, request: zcosmic_workspace_handle_v2::Request,
data: &CosmicWorkspaceData, data: &CosmicWorkspaceV2Data,
_dh: &DisplayHandle, _dh: &DisplayHandle,
_data_init: &mut DataInit<'_, D>, _data_init: &mut DataInit<'_, D>,
) { ) {
@ -184,7 +184,7 @@ pub fn send_workspace_to_client(
let mut changed = false; let mut changed = false;
let mut handle_state = instance let mut handle_state = instance
.data::<CosmicWorkspaceData>() .data::<CosmicWorkspaceV2Data>()
.unwrap() .unwrap()
.inner .inner
.lock() .lock()

View file

@ -1,14 +1,17 @@
// SPDX-License-Identifier: GPL-3.0-only // SPDX-License-Identifier: GPL-3.0-only
use cosmic_protocols::workspace::v2::server::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2;
use smithay::reexports::wayland_server::{ use smithay::reexports::wayland_server::{
backend::{ClientData, ClientId}, backend::{ClientData, ClientId},
Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource, Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource, Weak,
}; };
use std::sync::Mutex;
use super::{ use super::{
Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler, WorkspaceData, Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler, WorkspaceGlobalData,
WorkspaceGlobalData, WorkspaceGroup, WorkspaceGroupData, WorkspaceGroupHandle, WorkspaceGroup, WorkspaceGroupData, WorkspaceGroupHandle, WorkspaceHandler, WorkspaceState,
WorkspaceHandler, WorkspaceState,
}; };
use smithay::reexports::wayland_protocols::ext::workspace::v1::server::{ use smithay::reexports::wayland_protocols::ext::workspace::v1::server::{
@ -17,6 +20,17 @@ use smithay::reexports::wayland_protocols::ext::workspace::v1::server::{
ext_workspace_manager_v1::{self, ExtWorkspaceManagerV1}, ext_workspace_manager_v1::{self, ExtWorkspaceManagerV1},
}; };
#[derive(Default)]
pub struct WorkspaceDataInner {
name: String,
capabilities: Option<WorkspaceCapabilities>,
coordinates: Vec<u32>,
states: Option<ext_workspace_handle_v1::State>,
pub(super) cosmic_v2_handle: Option<Weak<ZcosmicWorkspaceHandleV2>>,
}
pub type WorkspaceData = Mutex<WorkspaceDataInner>;
impl<D> GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData, D> for WorkspaceState<D> impl<D> GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData, D> for WorkspaceState<D>
where where
D: GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData>

View file

@ -32,9 +32,11 @@ use cosmic_protocols::workspace::{
}; };
mod cosmic; mod cosmic;
pub use cosmic::CosmicWorkspaceV1Data;
mod cosmic_v2; mod cosmic_v2;
pub use cosmic_v2::CosmicWorkspaceData; pub use cosmic_v2::CosmicWorkspaceV2Data;
mod ext; mod ext;
pub use ext::WorkspaceData;
pub use smithay::reexports::wayland_protocols::ext::workspace::v1::server::ext_workspace_group_handle_v1::GroupCapabilities; pub use smithay::reexports::wayland_protocols::ext::workspace::v1::server::ext_workspace_group_handle_v1::GroupCapabilities;
@ -59,14 +61,14 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData> + GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ExtWorkspaceManagerV1, ()> + Dispatch<ExtWorkspaceManagerV1, ()>
+ Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ExtWorkspaceHandleV1, WorkspaceData> + Dispatch<ExtWorkspaceHandleV1, WorkspaceData>
+ GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> + GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -85,7 +87,7 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static; <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static;
@ -155,31 +157,19 @@ pub struct WorkspaceHandle {
id: usize, id: usize,
} }
#[derive(Default)]
pub struct WorkspaceDataInner {
name: String,
capabilities: Option<WorkspaceCapabilities>,
coordinates: Vec<u32>,
states: Option<ext_workspace_handle_v1::State>,
tiling: Option<zcosmic_workspace_handle_v2::TilingState>,
cosmic_v2_handle: Option<Weak<ZcosmicWorkspaceHandleV2>>,
}
pub type WorkspaceData = Mutex<WorkspaceDataInner>;
pub trait WorkspaceHandler pub trait WorkspaceHandler
where where
Self: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> Self: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData> + GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ExtWorkspaceManagerV1, ()> + Dispatch<ExtWorkspaceManagerV1, ()>
+ Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ExtWorkspaceHandleV1, WorkspaceData> + Dispatch<ExtWorkspaceHandleV1, WorkspaceData>
+ GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> + GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ Sized + Sized
+ 'static, + 'static,
{ {
@ -232,14 +222,14 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData> + GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ExtWorkspaceManagerV1, ()> + Dispatch<ExtWorkspaceManagerV1, ()>
+ Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ExtWorkspaceHandleV1, WorkspaceData> + Dispatch<ExtWorkspaceHandleV1, WorkspaceData>
+ GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> + GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -501,13 +491,13 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ Dispatch<ExtWorkspaceManagerV1, ()> + Dispatch<ExtWorkspaceManagerV1, ()>
+ Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ExtWorkspaceHandleV1, WorkspaceData> + Dispatch<ExtWorkspaceHandleV1, WorkspaceData>
+ GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> + GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -763,14 +753,14 @@ where
D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData> D: GlobalDispatch<ZcosmicWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV1, ()> + Dispatch<ZcosmicWorkspaceManagerV1, ()>
+ Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ZcosmicWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ZcosmicWorkspaceHandleV1, WorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV1, CosmicWorkspaceV1Data>
+ GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData> + GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData>
+ Dispatch<ExtWorkspaceManagerV1, ()> + Dispatch<ExtWorkspaceManagerV1, ()>
+ Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData> + Dispatch<ExtWorkspaceGroupHandleV1, WorkspaceGroupData>
+ Dispatch<ExtWorkspaceHandleV1, WorkspaceData> + Dispatch<ExtWorkspaceHandleV1, WorkspaceData>
+ GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData> + GlobalDispatch<ZcosmicWorkspaceManagerV2, WorkspaceGlobalData>
+ Dispatch<ZcosmicWorkspaceManagerV2, ()> + Dispatch<ZcosmicWorkspaceManagerV2, ()>
+ Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceData> + Dispatch<ZcosmicWorkspaceHandleV2, CosmicWorkspaceV2Data>
+ WorkspaceHandler + WorkspaceHandler
+ 'static, + 'static,
<D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static, <D as WorkspaceHandler>::Client: ClientData + WorkspaceClientHandler + 'static,
@ -792,7 +782,7 @@ macro_rules! delegate_workspace {
cosmic_protocols::workspace::v1::server::zcosmic_workspace_group_handle_v1::ZcosmicWorkspaceGroupHandleV1: $crate::wayland::protocols::workspace::WorkspaceGroupData cosmic_protocols::workspace::v1::server::zcosmic_workspace_group_handle_v1::ZcosmicWorkspaceGroupHandleV1: $crate::wayland::protocols::workspace::WorkspaceGroupData
] => $crate::wayland::protocols::workspace::WorkspaceState<Self>); ] => $crate::wayland::protocols::workspace::WorkspaceState<Self>);
smithay::reexports::wayland_server::delegate_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [ smithay::reexports::wayland_server::delegate_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [
cosmic_protocols::workspace::v1::server::zcosmic_workspace_handle_v1::ZcosmicWorkspaceHandleV1: $crate::wayland::protocols::workspace::WorkspaceData cosmic_protocols::workspace::v1::server::zcosmic_workspace_handle_v1::ZcosmicWorkspaceHandleV1: $crate::wayland::protocols::workspace::CosmicWorkspaceV1Data
] => $crate::wayland::protocols::workspace::WorkspaceState<Self>); ] => $crate::wayland::protocols::workspace::WorkspaceState<Self>);
smithay::reexports::wayland_server::delegate_global_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [ smithay::reexports::wayland_server::delegate_global_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [
@ -815,7 +805,7 @@ macro_rules! delegate_workspace {
cosmic_protocols::workspace::v2::server::zcosmic_workspace_manager_v2::ZcosmicWorkspaceManagerV2: () cosmic_protocols::workspace::v2::server::zcosmic_workspace_manager_v2::ZcosmicWorkspaceManagerV2: ()
] => $crate::wayland::protocols::workspace::WorkspaceState<Self>); ] => $crate::wayland::protocols::workspace::WorkspaceState<Self>);
smithay::reexports::wayland_server::delegate_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [ smithay::reexports::wayland_server::delegate_dispatch!($(@< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)? $ty: [
cosmic_protocols::workspace::v2::server::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2: $crate::wayland::protocols::workspace::CosmicWorkspaceData cosmic_protocols::workspace::v2::server::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2: $crate::wayland::protocols::workspace::CosmicWorkspaceV2Data
] => $crate::wayland::protocols::workspace::WorkspaceState<Self>); ] => $crate::wayland::protocols::workspace::WorkspaceState<Self>);
}; };
} }