aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-01 19:00:11 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-01 19:00:19 +0400
commit365dbacae7ed9b6dcee2c9a9281e9a531b842007 (patch)
tree5341d8e18b63f8ce30e721ef79c3524fc34b1834 /src/handlers
parentaf9caa1d9b176fe3606323a8c05c0c741c1f6c0a (diff)
downloadniri-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.rs3
-rw-r--r--src/handlers/xdg_shell.rs13
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);
}
})
}