aboutsummaryrefslogtreecommitdiff
path: root/src/handlers/mod.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-09-02 08:07:22 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-10-15 09:04:16 +0300
commite1fad994da9565b43c7fb139cb2fb7bf404cc320 (patch)
tree305fa0714d66ad2b4346b3aee6eb785099b29fa1 /src/handlers/mod.rs
parente5d4e7c1b1a0b61770b6711a53fe41920d56452d (diff)
downloadniri-e1fad994da9565b43c7fb139cb2fb7bf404cc320.tar.gz
niri-e1fad994da9565b43c7fb139cb2fb7bf404cc320.tar.bz2
niri-e1fad994da9565b43c7fb139cb2fb7bf404cc320.zip
Implement maximize-to-edges (true Wayland maximize)
Diffstat (limited to 'src/handlers/mod.rs')
-rw-r--r--src/handlers/mod.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs
index 3b673fa0..73575b45 100644
--- a/src/handlers/mod.rs
+++ b/src/handlers/mod.rs
@@ -550,6 +550,20 @@ impl ForeignToplevelHandler for State {
self.niri.layout.set_fullscreen(&window, false);
}
}
+
+ fn set_maximized(&mut self, wl_surface: WlSurface) {
+ if let Some((mapped, _)) = self.niri.layout.find_window_and_output(&wl_surface) {
+ let window = mapped.window.clone();
+ self.niri.layout.set_maximized(&window, true);
+ }
+ }
+
+ fn unset_maximized(&mut self, wl_surface: WlSurface) {
+ if let Some((mapped, _)) = self.niri.layout.find_window_and_output(&wl_surface) {
+ let window = mapped.window.clone();
+ self.niri.layout.set_maximized(&window, false);
+ }
+ }
}
delegate_foreign_toplevel!(State);