diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-09-02 08:07:22 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-10-15 09:04:16 +0300 |
| commit | e1fad994da9565b43c7fb139cb2fb7bf404cc320 (patch) | |
| tree | 305fa0714d66ad2b4346b3aee6eb785099b29fa1 /src/input | |
| parent | e5d4e7c1b1a0b61770b6711a53fe41920d56452d (diff) | |
| download | niri-e1fad994da9565b43c7fb139cb2fb7bf404cc320.tar.gz niri-e1fad994da9565b43c7fb139cb2fb7bf404cc320.tar.bz2 niri-e1fad994da9565b43c7fb139cb2fb7bf404cc320.zip | |
Implement maximize-to-edges (true Wayland maximize)
Diffstat (limited to 'src/input')
| -rw-r--r-- | src/input/mod.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs index 163c7748..42f90879 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -1514,6 +1514,23 @@ impl State { Action::MaximizeColumn => { self.niri.layout.toggle_full_width(); } + Action::MaximizeWindowToEdges => { + let focus = self.niri.layout.focus().map(|m| m.window.clone()); + if let Some(window) = focus { + self.niri.layout.toggle_maximized(&window); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } + Action::MaximizeWindowToEdgesById(id) => { + let window = self.niri.layout.windows().find(|(_, m)| m.id().get() == id); + let window = window.map(|(_, m)| m.window.clone()); + if let Some(window) = window { + self.niri.layout.toggle_maximized(&window); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } Action::FocusMonitorLeft => { if let Some(output) = self.niri.output_left() { self.niri.layout.focus_output(&output); |
