diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-11-02 10:35:05 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-11-02 10:53:55 +0300 |
| commit | 86bdc6898bc8a13368ba852692ff0cc248345128 (patch) | |
| tree | 4c3106f4bc51501289a2cd2aa858f8d14d332677 /src/window/mod.rs | |
| parent | e5ca3351153fa6f3d1e3b00806f85058a8182065 (diff) | |
| download | niri-86bdc6898bc8a13368ba852692ff0cc248345128.tar.gz niri-86bdc6898bc8a13368ba852692ff0cc248345128.tar.bz2 niri-86bdc6898bc8a13368ba852692ff0cc248345128.zip | |
Add with_toplevel_role() util function
Diffstat (limited to 'src/window/mod.rs')
| -rw-r--r-- | src/window/mod.rs | 18 |
1 files changed, 4 insertions, 14 deletions
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)) { |
