protocol/workspace: Move WorkspaceGroupData to ext.rs

More consistent to have this here next to `WorkspaceData`, now it isn't
shared with cosmic workspace v1.
This commit is contained in:
Ian Douglas Scott 2025-04-16 15:01:08 -07:00 committed by Ian Douglas Scott
parent dc67db9a5d
commit 2d4912bd20
2 changed files with 27 additions and 26 deletions

View file

@ -2,23 +2,37 @@
use cosmic_protocols::workspace::v2::server::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2; use cosmic_protocols::workspace::v2::server::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2;
use smithay::reexports::wayland_server::{ use smithay::{
backend::ClientId, Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource, output::Output,
Weak, reexports::{
wayland_protocols::ext::workspace::v1::server::{
ext_workspace_group_handle_v1::{self, ExtWorkspaceGroupHandleV1, GroupCapabilities},
ext_workspace_handle_v1::{self, ExtWorkspaceHandleV1},
ext_workspace_manager_v1::{self, ExtWorkspaceManagerV1},
},
wayland_server::{
backend::ClientId, protocol::wl_output::WlOutput, Client, DataInit, Dispatch,
DisplayHandle, GlobalDispatch, New, Resource, Weak,
},
},
}; };
use std::sync::Mutex; use std::{collections::HashSet, sync::Mutex};
use super::{ use super::{
Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler, WorkspaceGlobalData, Request, Workspace, WorkspaceCapabilities, WorkspaceClientHandler, WorkspaceGlobalData,
WorkspaceGroup, WorkspaceGroupData, WorkspaceGroupHandle, WorkspaceHandler, WorkspaceState, WorkspaceGroup, WorkspaceGroupHandle, WorkspaceHandler, WorkspaceState,
}; };
use smithay::reexports::wayland_protocols::ext::workspace::v1::server::{ #[derive(Default)]
ext_workspace_group_handle_v1::{self, ExtWorkspaceGroupHandleV1}, pub struct WorkspaceGroupDataInner {
ext_workspace_handle_v1::{self, ExtWorkspaceHandleV1}, outputs: Vec<Output>,
ext_workspace_manager_v1::{self, ExtWorkspaceManagerV1}, wl_outputs: HashSet<WlOutput>,
}; capabilities: Option<GroupCapabilities>,
workspace_count: usize,
}
pub type WorkspaceGroupData = Mutex<WorkspaceGroupDataInner>;
#[derive(Default)] #[derive(Default)]
pub struct WorkspaceDataInner { pub struct WorkspaceDataInner {

View file

@ -1,18 +1,17 @@
// SPDX-License-Identifier: GPL-3.0-only // SPDX-License-Identifier: GPL-3.0-only
use std::{collections::HashSet, sync::Mutex}; use std::sync::Mutex;
use smithay::{ use smithay::{
output::Output, output::Output,
reexports::{ reexports::{
wayland_protocols::ext::workspace::v1::server::{ wayland_protocols::ext::workspace::v1::server::{
ext_workspace_group_handle_v1::ExtWorkspaceGroupHandleV1, ext_workspace_group_handle_v1::{ExtWorkspaceGroupHandleV1, GroupCapabilities},
ext_workspace_handle_v1::{self, ExtWorkspaceHandleV1}, ext_workspace_handle_v1::{self, ExtWorkspaceHandleV1},
ext_workspace_manager_v1::ExtWorkspaceManagerV1, ext_workspace_manager_v1::ExtWorkspaceManagerV1,
}, },
wayland_server::{ wayland_server::{
backend::{ClientData, GlobalId, ObjectId}, backend::{ClientData, GlobalId, ObjectId},
protocol::wl_output::WlOutput,
Client, Dispatch, DisplayHandle, GlobalDispatch, Resource, Weak, Client, Dispatch, DisplayHandle, GlobalDispatch, Resource, Weak,
}, },
}, },
@ -27,9 +26,7 @@ use cosmic_protocols::workspace::v2::server::{
mod cosmic_v2; mod cosmic_v2;
pub use cosmic_v2::CosmicWorkspaceV2Data; pub use cosmic_v2::CosmicWorkspaceV2Data;
mod ext; mod ext;
pub use ext::WorkspaceData; pub use ext::{WorkspaceData, WorkspaceGroupData};
pub use smithay::reexports::wayland_protocols::ext::workspace::v1::server::ext_workspace_group_handle_v1::GroupCapabilities;
bitflags::bitflags! { bitflags::bitflags! {
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
@ -93,16 +90,6 @@ pub struct WorkspaceGroupHandle {
id: usize, id: usize,
} }
#[derive(Default)]
pub struct WorkspaceGroupDataInner {
outputs: Vec<Output>,
wl_outputs: HashSet<WlOutput>,
capabilities: Option<GroupCapabilities>,
workspace_count: usize,
}
pub type WorkspaceGroupData = Mutex<WorkspaceGroupDataInner>;
#[derive(Debug)] #[derive(Debug)]
pub struct Workspace { pub struct Workspace {
id: usize, id: usize,