diff options
Diffstat (limited to 'src/window')
| -rw-r--r-- | src/window/mapped.rs | 13 | ||||
| -rw-r--r-- | src/window/mod.rs | 18 |
2 files changed, 7 insertions, 24 deletions
diff --git a/src/window/mapped.rs b/src/window/mapped.rs index 3477a2f1..bf4aaa9b 100644 --- a/src/window/mapped.rs +++ b/src/window/mapped.rs @@ -15,7 +15,7 @@ use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface; use smithay::reexports::wayland_server::Resource as _; use smithay::utils::{Logical, Point, Rectangle, Scale, Serial, Size, Transform}; use smithay::wayland::compositor::{remove_pre_commit_hook, with_states, HookId}; -use smithay::wayland::shell::xdg::{SurfaceCachedState, ToplevelSurface, XdgToplevelSurfaceData}; +use smithay::wayland::shell::xdg::{SurfaceCachedState, ToplevelSurface}; use super::{ResolvedWindowRules, WindowRef}; use crate::handlers::KdeDecorationsModeState; @@ -33,7 +33,7 @@ use crate::render_helpers::surface::render_snapshot_from_surface_tree; use crate::render_helpers::{BakedBuffer, RenderTarget, SplitElements}; use crate::utils::id::IdCounter; use crate::utils::transaction::Transaction; -use crate::utils::{send_scale_transform, ResizeEdge}; +use crate::utils::{send_scale_transform, with_toplevel_role, ResizeEdge}; #[derive(Debug)] pub struct Mapped { @@ -631,14 +631,7 @@ impl LayoutElement for Mapped { let _span = trace_span!("configure_intent", surface = ?self.toplevel().wl_surface().id()).entered(); - with_states(self.toplevel().wl_surface(), |states| { - let attributes = states - .data_map - .get::<XdgToplevelSurfaceData>() - .unwrap() - .lock() - .unwrap(); - + with_toplevel_role(self.toplevel(), |attributes| { if let Some(server_pending) = &attributes.server_pending { let current_server = attributes.current_server_state(); if server_pending != current_server { diff --git a/src/window/mod.rs b/src/window/mod.rs index 4d06bb04..72917c25 100644 --- a/src/window/mod.rs +++ b/src/window/mod.rs @@ -1,11 +1,9 @@ use niri_config::{BlockOutFrom, BorderRule, CornerRadius, Match, WindowRule}; use smithay::reexports::wayland_protocols::xdg::shell::server::xdg_toplevel; -use smithay::wayland::compositor::with_states; -use smithay::wayland::shell::xdg::{ - ToplevelSurface, XdgToplevelSurfaceData, XdgToplevelSurfaceRoleAttributes, -}; +use smithay::wayland::shell::xdg::{ToplevelSurface, XdgToplevelSurfaceRoleAttributes}; use crate::layout::workspace::ColumnWidth; +use crate::utils::with_toplevel_role; pub mod mapped; pub use mapped::Mapped; @@ -144,15 +142,7 @@ impl ResolvedWindowRules { let mut resolved = ResolvedWindowRules::empty(); - let toplevel = window.toplevel(); - with_states(toplevel.wl_surface(), |states| { - let mut role = states - .data_map - .get::<XdgToplevelSurfaceData>() - .unwrap() - .lock() - .unwrap(); - + with_toplevel_role(window.toplevel(), |role| { // Ensure server_pending like in Smithay's with_pending_state(). if role.server_pending.is_none() { role.server_pending = Some(role.current_server_state().clone()); @@ -169,7 +159,7 @@ impl ResolvedWindowRules { } } - window_matches(window, &role, m) + window_matches(window, role, m) }; if !(rule.matches.is_empty() || rule.matches.iter().any(matches)) { |
