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:
parent
355b142c52
commit
0636bcdef3
6 changed files with 24 additions and 16 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue