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

@ -1,14 +1,17 @@
// SPDX-License-Identifier: GPL-3.0-only
use cosmic_protocols::workspace::v2::server::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2;
use smithay::reexports::wayland_server::{
backend::{ClientData, ClientId},
Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource,
Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource, Weak,
};
use std::sync::Mutex;
use super::{
Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler, WorkspaceData,
WorkspaceGlobalData, WorkspaceGroup, WorkspaceGroupData, WorkspaceGroupHandle,
WorkspaceHandler, WorkspaceState,
Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler, WorkspaceGlobalData,
WorkspaceGroup, WorkspaceGroupData, WorkspaceGroupHandle, WorkspaceHandler, WorkspaceState,
};
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},
};
#[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>
where
D: GlobalDispatch<ExtWorkspaceManagerV1, WorkspaceGlobalData>