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

@ -7,11 +7,9 @@ use crate::{
},
shell::Shell,
state::SurfaceDmabufFeedback,
utils::prelude::*,
utils::{prelude::*, quirks::workspace_overview_is_open},
wayland::{
handlers::screencopy::{
submit_buffer, FrameHolder, SessionData, WORKSPACE_OVERVIEW_NAMESPACE,
},
handlers::screencopy::{submit_buffer, FrameHolder, SessionData},
protocols::screencopy::{
FailureReason, Frame as ScreencopyFrame, Session as ScreencopySession,
},
@ -48,7 +46,7 @@ use smithay::{
Bind, ImportDma, Offscreen, Renderer, Texture,
},
},
desktop::{layer_map_for_output, utils::OutputPresentationFeedback},
desktop::utils::OutputPresentationFeedback,
output::{Output, OutputNoMode},
reexports::{
calloop::{
@ -871,10 +869,7 @@ impl SurfaceThreadState {
std::mem::drop(shell);
let element_filter = if layer_map_for_output(output)
.layers()
.any(|s| s.namespace() == WORKSPACE_OVERVIEW_NAMESPACE)
{
let element_filter = if workspace_overview_is_open(output) {
ElementFilter::LayerShellOnly
} else {
ElementFilter::All

View file

@ -20,11 +20,11 @@ use crate::{
CosmicMappedRenderElement, OverviewMode, SeatExt, SessionLock, Trigger, WorkspaceDelta,
WorkspaceRenderElement,
},
utils::prelude::*,
utils::{prelude::*, quirks::WORKSPACE_OVERVIEW_NAMESPACE},
wayland::{
handlers::{
data_device::get_dnd_icon,
screencopy::{render_session, FrameHolder, SessionData, WORKSPACE_OVERVIEW_NAMESPACE},
screencopy::{render_session, FrameHolder, SessionData},
},
protocols::workspace::WorkspaceHandle,
},