Add workspace_overview_is_open function; put in a utils::quirks mod

This is increasingly not just related to screencopy, so it's weird to
add there. I don't see any other module that fits, so add one called
"quirks" (like the Linux kernel uses for device-specific handling in
generic drives).
This commit is contained in:
Ian Douglas Scott 2024-07-12 16:03:17 -07:00 committed by Victoria Brekenfeld
parent 355b142c52
commit 0636bcdef3
6 changed files with 24 additions and 16 deletions

View file

@ -5,6 +5,7 @@ pub(crate) use self::ids::id_gen;
pub mod geometry;
pub mod iced;
pub mod prelude;
pub mod quirks;
pub mod rlimit;
pub mod screenshot;
pub mod tween;

14
src/utils/quirks.rs Normal file
View file

@ -0,0 +1,14 @@
// SPDX-License-Identifier: GPL-3.0-only
use smithay::{desktop::layer_map_for_output, output::Output};
/// Layer shell namespace used by `cosmic-workspaces`
// TODO: Avoid special case, or add protocol to expose required behavior
pub const WORKSPACE_OVERVIEW_NAMESPACE: &str = "cosmic-workspace-overview";
/// Check if a workspace overview shell surface is open on the output
pub fn workspace_overview_is_open(output: &Output) -> bool {
layer_map_for_output(output)
.layers()
.any(|s| s.namespace() == WORKSPACE_OVERVIEW_NAMESPACE)
}