diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-01 19:00:11 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-01 19:00:19 +0400 |
| commit | 365dbacae7ed9b6dcee2c9a9281e9a531b842007 (patch) | |
| tree | 5341d8e18b63f8ce30e721ef79c3524fc34b1834 /src/handlers | |
| parent | af9caa1d9b176fe3606323a8c05c0c741c1f6c0a (diff) | |
| download | niri-365dbacae7ed9b6dcee2c9a9281e9a531b842007.tar.gz niri-365dbacae7ed9b6dcee2c9a9281e9a531b842007.tar.bz2 niri-365dbacae7ed9b6dcee2c9a9281e9a531b842007.zip | |
Move unmap snapshot from Mapped to Tile
Diffstat (limited to 'src/handlers')
| -rw-r--r-- | src/handlers/compositor.rs | 3 | ||||
| -rw-r--r-- | src/handlers/xdg_shell.rs | 13 |
2 files changed, 8 insertions, 8 deletions
diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs index 060980a5..37903a20 100644 --- a/src/handlers/compositor.rs +++ b/src/handlers/compositor.rs @@ -303,8 +303,9 @@ impl CompositorHandler for State { // Test client: alacritty with CSD. if let Some(root) = self.niri.root_surface.get(surface) { if let Some((mapped, _)) = self.niri.layout.find_window_and_output(root) { + let window = mapped.window.clone(); self.backend.with_primary_renderer(|renderer| { - mapped.store_unmap_snapshot_if_empty(renderer); + self.niri.layout.store_unmap_snapshot(renderer, &window); }); } } diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs index 6f627850..9864ccdc 100644 --- a/src/handlers/xdg_shell.rs +++ b/src/handlers/xdg_shell.rs @@ -30,7 +30,6 @@ use smithay::{ }; use crate::layout::workspace::ColumnWidth; -use crate::layout::LayoutElement as _; use crate::niri::{PopupGrabState, State}; use crate::window::{InitialConfigureState, ResolvedWindowRules, Unmapped, WindowRef}; @@ -389,7 +388,7 @@ impl XdgShellHandler for State { let output = output.clone(); self.backend.with_primary_renderer(|renderer| { - mapped.store_unmap_snapshot_if_empty(renderer); + self.niri.layout.store_unmap_snapshot(renderer, &window); }); self.backend.with_primary_renderer(|renderer| { self.niri @@ -881,22 +880,22 @@ pub fn add_mapped_toplevel_pre_commit_hook(toplevel: &ToplevelSurface) -> HookId false }; + let window = mapped.window.clone(); if got_unmapped { state.backend.with_primary_renderer(|renderer| { - mapped.store_unmap_snapshot_if_empty(renderer); + state.niri.layout.store_unmap_snapshot(renderer, &window); }); } else { - // The toplevel remains mapped; clear any stored unmap snapshot. - let _ = mapped.take_unmap_snapshot(); - if animate { state.backend.with_primary_renderer(|renderer| { mapped.store_animation_snapshot(renderer); }); - let window = mapped.window.clone(); state.niri.layout.prepare_for_resize_animation(&window); } + + // The toplevel remains mapped; clear any stored unmap snapshot. + state.niri.layout.clear_unmap_snapshot(&window); } }) } |
